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

معي هذا الكود للتعديل على بيانات المستخدم في القاعدة أريد أعرف وين الخطأ فيه ؟ أم أن بيانات المستخدم لا يمكن تعديلها في وضع runtime

أريد كود مشابه أو حل لتعديل بيانات المستخدم

كود :
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
       Try
           Dim dbsource As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Application.StartupPath & "\database\Database112.mdb"
           Dim conn = New OleDbConnection(dbsource)
           Dim updatee As String = "Update Users set username ='" & TextBox1.Text & "', password = '" & TextBox2.Text & "', gender ='" & ComboBox1.SelectedItem.ToString & "', birthday ='" & DateTimePicker1.Value & "', Address ='" & TextBox3.Text & "', Health_Status ='" & TextBox4.Text & "', password_open_case ='" & TextBox5.Text & "' where user_id=" & My.Settings.deleted.ToString() & ";"
           Dim cmd As New OleDbCommand(updatee, conn)


           conn.Open()
           cmd.ExecuteNonQuery()
           MsgBox("save success")
           My.Settings.edit = "yess"
           conn.Close()
       Catch ex As Exception
           MsgBox("error")
       End Try
       Main.Update()

       Main.Show()
       Main.Update()
       Main.Refresh()

       Me.Close()
   End Sub
الرد }}}
تم الشكر بواسطة:
#2
لماذا لا ترفع قاعدة البيانات

شرط هذا غريب 

كود :
My.Settings.deleted.ToString()
وانت اعطيته قيمة بعد عملة طلب التحديث
الرد }}}
تم الشكر بواسطة: asadtaif
#3
لا بالعكس الشرط على حد علمي صحيح, وهذا في فورم أخر لتحديد الرو في الداتا قريد فيو

كود :
Private Sub DataGridView5_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView5.CellClick
       Dim index As Integer
       index = e.RowIndex
       Dim selectedRow = DataGridView5.Rows(index)

       My.Settings.deleted = selectedRow.Cells(0).Value
       My.Settings.editFlag = selectedRow.Cells(0).Value.ToString()

       My.Settings.uusername = selectedRow.Cells(1).Value.ToString()
       My.Settings.password = selectedRow.Cells(2).Value.ToString()
       My.Settings.gender = selectedRow.Cells(3).Value.ToString()
       My.Settings.birthday = selectedRow.Cells(4).Value.ToString()
       My.Settings.Address = selectedRow.Cells(5).Value.ToString()
       My.Settings.Health_Status = selectedRow.Cells(6).Value.ToString()
       My.Settings.password_open_case = selectedRow.Cells(7).Value.ToString()

   End Sub
الرد }}}
تم الشكر بواسطة:
#4
جرب واتأكد من كلمة (yes) (الي المفروض انها بقت شرط علي مافهمت من الطريقه  ) مكتوبه غلط - والا قاصد تكون كده ؟

اشتغل تمام  ماشتغلش  مثال صغير ترفعه يمكن تلاقي الحل وانتا بتعزل الجزئيه دي عن المشروع علشان ترفعها 

وده الكود بعد التعديل (شوف مضمون رساله الخطأ الي هتظهر من جملة تراي يعد تعديلها  
كود :
      Try
           Dim dbsource As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Application.StartupPath & "\database\Database112.mdb"
           Dim conn = New OleDbConnection(dbsource)
           Dim updatee As String = "update Users SET username=@1,password=@2,gender=@3,birthday=@4,Address=@5,Health_Status=@6,password_open_case=@7" &
           " where user_id=@8"
           Dim cmd As New OleDbCommand(updatee, conn)
           cmd.Parameters.AddWithValue("@1", TextBox1.Text) 'كود الصنف
           cmd.Parameters.AddWithValue("@2", TextBox2.Text)
           cmd.Parameters.AddWithValue("@3", ComboBox1.text)
           cmd.Parameters.AddWithValue("@4", DateTimePicker1.Value)
           cmd.Parameters.AddWithValue("@5", TextBox3.Text)
           cmd.Parameters.AddWithValue("@6", TextBox4.Text)
           cmd.Parameters.AddWithValue("@7", TextBox5.Text)
           cmd.Parameters.AddWithValue("@8", My.Settings.deleted.ToString)
           conn.Open()
           cmd.ExecuteNonQuery()
           MsgBox("save success")
           My.Settings.edit = "yess"
           conn.Close()
       Catch ex As Exception
           MsgBox(ex.ToString)
       End Try
       Main.Update()

       Main.Show()
       Main.Update()
       Main.Refresh()

       Me.Close()
(وداءما خلي جملة تراي بالشكل ده علشان تظهرلك رساله بالخطأ - اذا كان فيه خطأ))

كود :
       Try

       Catch ex As Exception
           MsgBox(ex.ToString)
       End Try
اللهم صلي علي نبي (الرحمه) محمد رسول الله وبارك علي اله وصحابته والتابعين  واحقن دماء امتنا واجعل بأسنا علي اعدائنا يا ارحم الراحمين
[b]امين [/b]



الرد }}}
تم الشكر بواسطة: asadtaif
#5
(14-06-19, 04:36 AM)zinom كتب :
جرب واتأكد من كلمة (yes) (الي المفروض انها بقت شرط علي مافهمت من الطريقه  ) مكتوبه غلط - والا قاصد تكون كده ؟

اشتغل تمام  ماشتغلش  مثال صغير ترفعه يمكن تلاقي الحل وانتا بتعزل الجزئيه دي عن المشروع علشان ترفعها 

وده الكود بعد التعديل (شوف مضمون رساله الخطأ الي هتظهر من جملة تراي يعد تعديلها  



ودي رسالة الخطأ في الكود لي رسلته لي:




للعلم البرنامج به يوزر واحد فقط والمستهدف للتعديل ربما تكون المشكلة أنه لا يمكنك تعديل اليوزر المتصل في وضع الرن تايم.

تم إرفاق القاعدة


الملفات المرفقة
.rar   Database112.rar (الحجم : 22.14 ك ب / التحميلات : 8)
الرد }}}
تم الشكر بواسطة:
#6
انت فى الكود تستخدم كود لتنفيذ التحديث
من ثم ياليه هذا الكود
كود :
       Main.Update()

       Main.Show()
       Main.Update()
       Main.Refresh()

يفضل ارفاق مثال الذى لديك اخى الفاضل
للنظر عليه ورؤية ما تقوم به
لشرح الاخطاء بالمشروع وكيفية معالجة الامر

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: asadtaif , asadtaif , ابراهيم ايبو , zinom
#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
#8
الخطأ في الكود الخاص بك هو أن كلمة Password كلمة محجوزة في لغة الاستعلام ولو وضعتها بين معكوفتين [] لازال الاشكال

كود :
Try
            Dim dbsource As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Application.StartupPath & "\database\Database112.mdb"
            Dim conn = New OleDbConnection(dbsource)
            Dim updatee As String = "Update Users set username ='" & TextBox1.Text & "', [password] = '" & TextBox2.Text & "', gender ='" & ComboBox1.SelectedItem.ToString & "', birthday ='" & DateTimePicker1.Value & "', Address ='" & TextBox3.Text & "', Health_Status ='" & TextBox4.Text & "', password_open_case ='" & TextBox5.Text & "' where user_id=" & My.Settings.deleted.ToString() & ";"
            Dim cmd As New OleDbCommand(updatee, conn)


            conn.Open()
            cmd.ExecuteNonQuery()
            MsgBox("save success")
            conn.Close()
        Catch ex As Exception
            MsgBox("error")
       
End Try
الرد }}}
تم الشكر بواسطة: asadtaif , elgokr
#9
(15-06-19, 08:03 AM)سامي محمد كتب : الخطأ في الكود الخاص بك هو أن كلمة Password كلمة محجوزة في لغة الاستعلام ولو وضعتها بين معكوفتين [] لازال الاشكال
شكراً على المشاركة،، بس للأسف لا. Sad

تم إرفاق مثال بسيط:


الملفات المرفقة
.rar   example.rar (الحجم : 122.62 ك ب / التحميلات : 3)
الرد }}}
تم الشكر بواسطة:
#10
المثال شغل بدون اي مشاكل بعد اضافة [] وجربة بنفسة اجريت عملية تعديل عليه فقبلها بدون خطأ


الملفات المرفقة
.rar   End.rar (الحجم : 115.44 ك ب / التحميلات : 1)
الرد }}}
تم الشكر بواسطة: asadtaif , elgokr , elgokr


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ممكن حل المشكلة فى الكود التالي - من مشاركة استاذنا القدير / عبدالله الدوسري new_programer 4 176 02-03-24, 07:36 PM
آخر رد: new_programer
  ماهو حل هذا الخطأ في الكود melad2002 7 275 25-02-24, 12:25 AM
آخر رد: justforit
  كيفية انشاء سكريبت لقاعدة بيانات من خلال الكود heem1986 1 213 20-02-24, 12:00 AM
آخر رد: Kamil
  [VB.NET] أرغب فى استخدام هذا الكود بالتحديد على الإصدار 10 AmeenRashed 3 210 19-01-24, 12:42 PM
آخر رد: Taha Okla
  شرح عن الخطأ attempted to read or write Adel27213 3 393 05-01-24, 01:01 AM
آخر رد: HALIM ELEULMA
  [VB.NET] ما الخطأ فى هذا الكود - كود البحث المتعدد Ashraf Elafify 7 476 27-12-23, 10:50 PM
آخر رد: Ashraf Elafify
  [VB.NET] اريد تعديل في الكود عند طباعة DGV abu_hisham7 1 441 03-12-23, 02:40 AM
آخر رد: abu_hisham7
  [VB.NET] أين الخطأ فى تشغيل هذا التطبيق AhmedEissa 0 242 27-10-23, 04:05 PM
آخر رد: AhmedEissa
  [كود] ما الخطأ فى الـ Functions المستخدم فى vb.net 2010 AhmedEissa 9 508 21-10-23, 11:44 PM
آخر رد: Ahmed5
  رجاء التعديل على الكود المرفق - كلاس لعرض كود المورد new_programer 4 361 13-10-23, 01:47 AM
آخر رد: new_programer

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


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