الأخوة الأعزاء
السلام عليكم ورحمة الله وبركاته ،،،
هل من الممكن مساعدتي بإجاد كود بحيث إذا دخل أي مستخدم للبرنامج يضغط على زر بالفورم ينقله إلى فورم من ثلاثة حقول بحيث الحقل الأول يضع فيه كلمة المرور الحالية والحقل الثاني يضع كلمة المرور الجديدة والحقل الثالث يكرر نفس كلمة المرور الجديدة كما بالصورة المرفقة
الله يعطيك العافية أخ أنس
عملت مثل ماهو موجود بالموقع إلي أرسلته
تطلع لي رسالة (
خطأ في بناء جملة update ) بعد الضغط على زر التعديل
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim con As New OleDbConnection()
Dim cmd As OleDbCommand
Dim sql = "SELECT UserName, Password FROM UserPass WHERE UserName='" & cmbUser.Text & "' AND Password='" & txtOldPass.Text & "'"
cmd = New OleDbCommand(sql, con)
con.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=alyat1.accdb;Jet OLEDB:Database Password=123456")
con.Open()
Dim dr As OleDbDataReader = cmd.ExecuteReader
Try
If dr.Read = False Then
MsgBox("تم إدخال كلمة مرور الحالية غير صحيحة!")
txtOldPass.Text = ""
txtNewPass.Text = ""
txtNewPassConf.Text = ""
ElseIf txtNewPass.Text <> txtNewPassConf.Text Then
MsgBox("كلمات المرور الجديدة المدخلة غير متطابقين!")
txtOldPass.Text = ""
txtNewPass.Text = ""
txtNewPassConf.Text = ""
Else
'This is where the change password code goes
Dim cmdText = "UPDATE UserPass SET Password = @Password " & " WHERE UserName = @UserName AND Password = @oldPass"
dr.Close()
cmdUpdate = New OleDbCommand(cmdText, con)
cmdUpdate.Parameters.AddWithValue("@Password", txtNewPass.Text)
cmdUpdate.Parameters.AddWithValue("@UserName", cmbUser.Text)
cmdUpdate.Parameters.AddWithValue("@Password", txtOldPass.Text)
cmdUpdate.ExecuteNonQuery()
MsgBox("تم تغيير كلمة المرور بنجاح!")
'cmbUser.Text = ""
txtOldPass.Text = ""
txtNewPass.Text = ""
txtNewPassConf.Text = ""
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
con.Close()
End Sub
تم حل المشكلة بعد تعديل الكود بكود آخر
أشكر الجميع
هذا الكود يوضع في فورم تغيير كلمة المرور
كود :
Imports System.Data.OleDb
Imports System.Reflection.Emit
Imports System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel
Public Class Change_Password
Public da As New OleDbDataAdapter("Select * from UserPass", con)
Public dt As New DataTable
Private cmdUpdate As OleDbCommand
Private Sub Change_Password_Load(sender As Object, e As EventArgs) Handles MyBase.Load
cmbUser.Text = User_Name
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim con As New OleDbConnection()
Dim cmd As OleDbCommand
Dim sql = "SELECT UserName, Password FROM UserPass WHERE UserName='" & cmbUser.Text & "' AND Password='" & txtOldPass.Text & "'"
cmd = New OleDbCommand(sql, con)
con.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=alyat1.accdb;Jet OLEDB:Database Password=fhmmsa")
con.Open()
Dim dr As OleDbDataReader = cmd.ExecuteReader
Try
If dr.Read = False Then
MsgBox("تم إدخال كلمة مرور الحالية غير صحيحة!")
txtOldPass.Text = ""
txtNewPass.Text = ""
txtNewPassConf.Text = ""
ElseIf txtNewPass.Text <> txtNewPassConf.Text Then
MsgBox("كلمات المرور الجديدة المدخلة غير متطابقين!")
txtOldPass.Text = ""
txtNewPass.Text = ""
txtNewPassConf.Text = ""
Else
'This is where the change password code goes
Update_UserPass(txtNewPass.Text, cmbUser.Text)
'cmbUser.Text = ""
txtOldPass.Text = ""
txtNewPass.Text = ""
txtNewPassConf.Text = ""
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
con.Close()
End Sub
Public Sub Update_UserPass(ByVal Password As String, ByVal UserName As String)
Dim Cmd As New OleDbCommand
With Cmd
.Connection = con
.CommandType = CommandType.Text
.CommandText = "Update [UserPass] Set [Password] = @Password Where [UserName] = @UserName"
.Parameters.Clear()
.Parameters.AddWithValue("@Password", OleDbType.VarWChar).Value = Password
.Parameters.AddWithValue("@UserName", OleDbType.Integer).Value = UserName
End With
If con.State = ConnectionState.Open Then con.Close()
con.Open()
Cmd.ExecuteNonQuery()
con.Close()
MsgBox("تم تعديل كلمة المرور بنجاح", MsgBoxStyle.Information, "تعديل")
Cmd = Nothing
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Main_Form.Show()
Me.Hide()
End Sub
End Class
وهذا الكود تضعه في Module قبل End Module مباشرة
كود :
Public User_Name As String
وهذا الكود يوضع في فورم تسجيل الدخول
كود :
User_Name = TextBox1.Text
طبعاً مع تصميم فورم مثل الموجود بالمفرقات