Private Sub Button2_Click1(sender As System.Object, e As System.EventArgs) Handles ButEdit.Click
cn.Open()
Try
Dim cmd As New SqlCommand
cmd.Connection = cn
cmd.CommandText = "update Sader1 set mawdo_MasgS='" & mawdo_MasgS.Text & "', Sader_men='" & Sader_men.Text & "' , date_MasgS ='" & date_MasgS.Text & "', Sader_ela ='" & Sader_ela.Text & "', morfagatS='" & morfagatS.Text & "', Mostalem='" & Mostalem.Text & "' , sefa ='" & sefa.Text & "', namberphon ='" & namberphon.Text & "', websait='" & websait.Text & "', note='" & note.Text & "' where id_esaryS = '" & id_esaryS.Text & "'"
cmd.ExecuteNonQuery()
MsgBox("هل تريد تعديل بيانات ")
Catch ex As Exception
MsgBox(ex.Message.ToString)
MsgBox("تم تعديل بيانات بنجاح ")
End Try
cn.Close()
يعطي مسج بهذا الخطأ
انصح باستخدام اسلوب ال Parameters لانه من ناحية أأمن ضد ال SQL Injection ومن ناحية اخرى يسهل عملية اضافة بيانات ليست نصية كتاريخ او رقم مثلا بنوعهم الاصلي دون تحويلهم الى String :
كود :
Dim CommandString As String = "update Sader1 set mawdo_MasgS = @mawdo_MasgS , Sader_men = @Sader_men , date_MasgS = @date_MasgS , Sader_ela = @Sader_ela , morfagatS = @morfagatS , Mostalem = @Mostalem , sefa = @sefa , namberphon = @namberphon , websait = @websait , note = @note where id_esaryS = @id_esaryS"
Dim Command As New SqlCommand(CommandString, cn)
Command.Parameters.AddWithValue("@mawdo_MasgS" , mawdo_MasgS.Text )
Command.Parameters.AddWithValue("@Sader_men" , Sader_men.Text)
Command.Parameters.AddWithValue("@date_MasgS" , date_MasgS.Value)
Command.Parameters.AddWithValue("@Sader_ela" , Sader_ela.Text)
Command.Parameters.AddWithValue("@morfagatS" , morfagatS.Text)
Command.Parameters.AddWithValue("@Mostalem" , Mostalem.Text)
Command.Parameters.AddWithValue("@sefa" , sefa.Text)
Command.Parameters.AddWithValue("@namberphon" , namberphon.Text)
Command.Parameters.AddWithValue("@websait" , websait.Text)
Command.Parameters.AddWithValue("@note" , note.Text)
Command.Parameters.AddWithValue("@id_esaryS" , Integer.Parse(id_esaryS.Text))
cn.Open()
Command.ExecuteNonQuery()
cn.Close()
MsgBox("تم تعديل بيانات بنجاح ")
ارجو الملاحظة ان اداة ال DateTimePicker نأخد منها قيمة التاريخ من الخاصية Value وليس Text
وارجو الملاحظة ايضا اني افترضت ان كل اعمدة الجدول من نوع نصوص فيما عدا id_esaryS و date_MasgS ولا اعلم هل هذه هي الحالة ام لا ، ولكن يجب عند استخدام البرامترات ان تضع القيمة من نفس النوع في جدول قاعدة البيانات ، اذا كانت Integer نستخدم Integer.Parse وهكذا
(16-11-20, 02:56 PM)Anas Mahmoud كتب : [ -> ]انصح باستخدام اسلوب ال Parameters لانه من ناحية أأمن ضد ال SQL Injection ومن ناحية اخرى يسهل عملية اضافة بيانات ليست نصية كتاريخ او رقم مثلا بنوعهم الاصلي دون تحويلهم الى String :
كود :
Dim CommandString As String = "update Sader1 set mawdo_MasgS = @mawdo_MasgS , Sader_men = @Sader_men , date_MasgS = @date_MasgS , Sader_ela = @Sader_ela , morfagatS = @morfagatS , Mostalem = @Mostalem , sefa = @sefa , namberphon = @namberphon , websait = @websait , note = @note where id_esaryS = @id_esaryS"
Dim Command As New SqlCommand(CommandString, cn)
Command.Parameters.AddWithValue("@mawdo_MasgS" , mawdo_MasgS.Text )
Command.Parameters.AddWithValue("@Sader_men" , Sader_men.Text)
Command.Parameters.AddWithValue("@date_MasgS" , date_MasgS.Value)
Command.Parameters.AddWithValue("@Sader_ela" , Sader_ela.Text)
Command.Parameters.AddWithValue("@morfagatS" , morfagatS.Text)
Command.Parameters.AddWithValue("@Mostalem" , Mostalem.Text)
Command.Parameters.AddWithValue("@sefa" , sefa.Text)
Command.Parameters.AddWithValue("@namberphon" , namberphon.Text)
Command.Parameters.AddWithValue("@websait" , websait.Text)
Command.Parameters.AddWithValue("@note" , note.Text)
Command.Parameters.AddWithValue("@id_esaryS" , Integer.Parse(id_esaryS.Text))
cn.Open()
Command.ExecuteNonQuery()
cn.Close()
MsgBox("تم تعديل بيانات بنجاح ")
ارجو الملاحظة ان اداة ال DateTimePicker نأخد منها قيمة التاريخ من الخاصية Value وليس Text
وارجو الملاحظة ايضا اني افترضت ان كل اعمدة الجدول من نوع نصوص فيما عدا id_esaryS و date_MasgS ولا اعلم هل هذه هي الحالة ام لا ، ولكن يجب عند استخدام البرامترات ان تضع القيمة من نفس النوع في جدول قاعدة البيانات ، اذا كانت Integer نستخدم Integer.Parse وهكذا
بارك الله فيك اخي ويسلمو علي المعلومة وجزاك الله كل خير