تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
لدي خطا في كود التعديل لمنظومه ارشيف الكتروني
#1
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()

يعطي مسج بهذا الخطأ


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:
#2
انصح باستخدام اسلوب ال 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 وهكذا
الرد }}}
تم الشكر بواسطة: محمد كريّم
#3
(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 وهكذا
بارك الله فيك اخي ويسلمو علي المعلومة وجزاك الله كل خير
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  عمل datagridview مربوطه بقاعده بيانات للاضافه و الحذف و التعديل فجوال بيزك RaggiTech 0 3,430 17-10-12, 05:10 PM
آخر رد: RaggiTech
  عمل datagridview مربوطه بقاعده بيانات للاضافه و الحذف و التعديل سي شارب RaggiTech 0 3,093 17-10-12, 05:10 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم