تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] وين الخطأ في هذا الكود (إستعلام)
#7
مرحبا اخي

في البداية لدي كم ملاحظة
اولا قم بالعادة باعاده تسمية ال textboxs فمثلا بدل Textbox1
اجعل اسمة txt_username لكي تسهل على نفسك تتبع الكود و اسهل في التعديل.
ثانيا يجب استخدام Parameters في التعديل او الاضافة ليش ؟؟
نتخلص من مشاكل ال injection. شو يعني ؟؟

انت لديك في الاتي :
كود :
username ='" & TextBox1.Text & "'
 
لماذا استخدمنا ' text ' لانه نص، فالنفرض احد المستخدمين اسمة : Baraá 
فقد استخدم 'في الاسم هكذا سيحدث خطاء في الكود الخاص بك.
الفائدة الاخرى ان الكود مرتب بشكل افضل و اسهل للتهديل والاضافة.

الملاحظة الثالثة : قم بالاتصال بالسيرفر مرة واحدة فقط ليس عليك كل مرة تطلب الاتصال بقاعدة البيانات تكتب جملة الاتصال،
قم بعمل class واضف اليه جمله الاتصال و استدعي الاتصال في بداية ال form و استخدم الاتصال، او على الاقل ضع الاتصال في اول ال form
وقم باستدعائة.

اخيرا هذا الكود الخاص فيك باستخدام ال Parameters
كود :
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click

Dim dbsource As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Application.StartupPath & "\database\Database112.mdb"
im conn = New OleDbConnection(dbsource)

  If conn.State Is ConnectionState.Closed Then
   conn.Open()
 End If

   Dim query As String = "Update Users set username=@username, password=@password, gender=@gender, birthday=@birthday, Address=@Address,  Health_Status=@Health_Status, password_open_case=@password_open_case where user_id=@user_id"

   Dim cmd As OleDbCommand = New OleDbCommand(query, conn)
   cmd.Parameters.AddWithValue("@username", TextBox1.Text)
   cmd.Parameters.AddWithValue("@password", TextBox2.Text)
   cmd.Parameters.AddWithValue("@gender", ComboBox1.SelectedItem.ToString())
   cmd.Parameters.AddWithValue("@birthday", DateTimePicker1.Value)
   cmd.Parameters.AddWithValue("@Address", TextBox3.Text)
   cmd.Parameters.AddWithValue("@Health_Status", TextBox4.Text)
   cmd.Parameters.AddWithValue("@Health_Status", TextBox5.Text)
   cmd.Parameters.AddWithValue("@user_id", My.Settings.deleted.ToString())

   cmd.ExecuteScalar()
   _con.con.Close()
   MsgBox("save success")
   My.Settings.edit = "yess"
End Sub
لكن لم افهم لماذا تاخذ رقم المستخدم من النصوص المحفوظه في الاعدادات ؟؟
إقتباس :
كود :
My.Settings.deleted.ToString

اذا احتجت استفسار لا تتردد في السؤال.

الرد }}}
تم الشكر بواسطة: asadtaif , asadtaif , ابراهيم ايبو , zinom


الردود في هذا الموضوع
RE: وين الخطأ في هذا الكود (إستعلام) - بواسطة Rabeea Qbaha - 14-06-19, 11:20 PM


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


يقوم بقرائة الموضوع: