المشاركات : 405
المواضيع 131
الإنتساب : Aug 2014
السمعة :
2
الشكر: 2
تم شكره 94 مرات في 58 مشاركات
السلام عليكم
هذا الكود سليم 100% ولكن اثناء استخدامه التفت لشغلة بسيطة وهي :
اثناء عملية التعديل يقوم بتعديل كل من في كومبو بكس الى نفس البيانات التي قمت بالتعديل عليها .
كود :
Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb;Persist Security Info=False;")
Dim sql As String =
" update [Customer] set " &
" Cus_Name=@Cus_Name, Cus_Address=@Cus_Address, Cus_Region=@Cus_Region, Cus_Telephone_Number=@Cus_Telephone_Number "
Dim cmd As New OleDbCommand(sql, conn)
cmd.Parameters.AddWithValue("@Cus_Name", TextBox1.Text)
cmd.Parameters.AddWithValue("@Cus_Address", TextBox3.Text)
cmd.Parameters.AddWithValue("@Cus_Region", TextBox4.Text)
cmd.Parameters.AddWithValue("@Cus_Telephone_Number", TextBox5.Text)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
MessageBox.Show("We have been successfully Update", "Congratulations", MessageBoxButtons.OK, MessageBoxIcon.Information)
Form2_Load(e, e)
واذا سمحتم اريد كود اذا اقوم اضيف او احذف او اعدل يقوم بعميلية قراءة البيانات الجديدة بدل استخدامي لكود
او كود افضل منه
المشاركات : 33
المواضيع 0
الإنتساب : Sep 2017
السمعة :
10
الشكر: 309
تم شكره 32 مرات في 24 مشاركات
مع UPDATE يجب في sql أن تضيف WHERE مع تحديد ID الذي تريد تطبيق التعديل في بياناته
الا إذا قصدت فعلا تحديث جميع البيانات
المشاركات : 405
المواضيع 131
الإنتساب : Aug 2014
السمعة :
2
الشكر: 2
تم شكره 94 مرات في 58 مشاركات
اذا اضفت where
كود :
System.Data.OleDb.OleDbException occurred
HResult=0x80040E14
Message=Syntax error in UPDATE statement.
Source=Microsoft Access Database Engine
StackTrace:
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
at Rent_Schedule.Form2.Button3_Click(Object sender, EventArgs e) in D:\my project\Complete Project\Rent Schedule\Rent Schedule\Form2.vb:line 77
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
at Rent_Schedule.My.MyApplication.Main(String[] Args) in :line 81
الكود
كود :
Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb;Persist Security Info=False;")
Dim sql As String =
" update [Customer] set " &
" ( Cus_Name=@Cus_Name, Cus_Address=@Cus_Address, Cus_Region=@Cus_Region, Cus_Telephone_Number=@Cus_Telephone_Number )" &
" where " &
"( Cus_ID=@Cus_ID )"
Dim cmd As New OleDbCommand(sql, conn)
cmd.Parameters.AddWithValue("@Cus_Name", TextBox1.Text)
cmd.Parameters.AddWithValue("@Cus_Address", TextBox3.Text)
cmd.Parameters.AddWithValue("@Cus_Region", TextBox4.Text)
cmd.Parameters.AddWithValue("@Cus_Telephone_Number", TextBox5.Text)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
MessageBox.Show("We have been successfully Update", "Congratulations", MessageBoxButtons.OK, MessageBoxIcon.Information)
Form2_Load(e, e)
وجربت اضيف بدل :
ومثل الشيء
المشاركات : 33
المواضيع 0
الإنتساب : Sep 2017
السمعة :
10
الشكر: 309
تم شكره 32 مرات في 24 مشاركات
لازم تضيف Parameters الخاص به مثل ما فعلت في كل Parameters الاخرى
المشاركات : 405
المواضيع 131
الإنتساب : Aug 2014
السمعة :
2
الشكر: 2
تم شكره 94 مرات في 58 مشاركات
09-09-17, 01:46 PM
(آخر تعديل لهذه المشاركة : 09-09-17, 01:48 PM {2} بواسطة 0theghost0.)
مثل الخطأ
كود :
System.Data.OleDb.OleDbException occurred
HResult=0x80040E14
Message=Syntax error in UPDATE statement.
Source=Microsoft Access Database Engine
StackTrace:
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
at Rent_Schedule.Form2.Button3_Click(Object sender, EventArgs e) in D:\my project\Complete Project\Rent Schedule\Rent Schedule\Form2.vb:line 78
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
at Rent_Schedule.My.MyApplication.Main(String[] Args) in :line 81
الكود
كود :
Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb;Persist Security Info=False;")
Dim sql As String =
" update [Customer] set " &
" ( Cus_Name=@Cus_Name, Cus_Address=@Cus_Address, Cus_Region=@Cus_Region, Cus_Telephone_Number=@Cus_Telephone_Number )" &
" where " &
"( Cus_ID=@Cus_ID )"
Dim cmd As New OleDbCommand(sql, conn)
cmd.Parameters.AddWithValue("@Cus_ID", Label7.Text)
cmd.Parameters.AddWithValue("@Cus_Name", TextBox1.Text)
cmd.Parameters.AddWithValue("@Cus_Address", TextBox3.Text)
cmd.Parameters.AddWithValue("@Cus_Region", TextBox4.Text)
cmd.Parameters.AddWithValue("@Cus_Telephone_Number", TextBox5.Text)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
MessageBox.Show("We have been successfully Update", "Congratulations", MessageBoxButtons.OK, MessageBoxIcon.Information)
Form2_Load(e, e)
الخطأ في الكود لكن اين لا أعلم اخي الفاضل
المشاركات : 405
المواضيع 131
الإنتساب : Aug 2014
السمعة :
2
الشكر: 2
تم شكره 94 مرات في 58 مشاركات
المشروع اخوي مفيد لكن معقد انا ابحث عن اكواد تعطيني مثل الخدمة ولكن مبسطة جدا
المشاركات : 33
المواضيع 0
الإنتساب : Sep 2017
السمعة :
10
الشكر: 309
تم شكره 32 مرات في 24 مشاركات
09-09-17, 02:22 PM
(آخر تعديل لهذه المشاركة : 09-09-17, 02:41 PM {2} بواسطة ola.)
رتب اسطر Parameters مثل ترتيبها في sql
الاول فالاول
المشاركات : 405
المواضيع 131
الإنتساب : Aug 2014
السمعة :
2
الشكر: 2
تم شكره 94 مرات في 58 مشاركات
على العموم اشكر الشخص الى ساعدني والى حاول يساعدني
واشكر الاخ الغالي الى قام بإرسال لي الكود الصحيح على ايميلي الخاص
وهذا ماقام بإرساله لي :
والنتيجة سليمة والحمدالله
كود :
Try
Dim n As String = ComboBox1.Text
Dim Savecommand As New OleDb.OleDbCommand
'الاتصال بمزود البيانات
Dim Connectionstring As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb;Persist Security Info=False;"
Dim newconnection As New OleDbConnection(Connectionstring)
Savecommand.Connection = newconnection
Savecommand.CommandType = CommandType.Text
'التعديل هنا ويكون ما تكتبه فى التكست بوكس
Savecommand.CommandText = "UPDATE Customer SET Cus_Name = '" & Trim(TextBox1.Text) & "' , Cus_Address = '" & Trim(TextBox3.Text) _
& "' , Cus_Region = '" & Trim(TextBox4.Text) & "' , Cus_Telephone_Number = '" & Trim(TextBox5.Text) & "' WHERE Cus_Private_Number like '" & n & "'"
'فتح الاتصال وعمل التعديل الذى قمت به وبعد ذلك اغلاق الاتصال وتظهر رساله للمستخدم بنجاح التعديل الذى قام به
newconnection.Open()
Savecommand.ExecuteNonQuery()
newconnection.Close()
MsgBox("تم التعديل", 64, "نجاح")
' Me.Close()
'اظهار الفورم الرئيسى بعد نجاح التعديل واغلاق فورم التعديل
' main.Show()
'اصطياد الاخطاء
Catch ex As Exception
'عرض الخطا فى رساله
MsgBox(ex.Message, 16, "خطأ")
End Try
Form2_Load(e, e)
قمت بوضعه لكم ليستفيد كل من يريده
المشاركات : 405
المواضيع 131
الإنتساب : Aug 2014
السمعة :
2
الشكر: 2
تم شكره 94 مرات في 58 مشاركات
اوك اذا ستسبب اخطاء او اشخاء اخرى فهل تستطيع التعديل او اعطائي كود شغال بدون مشاكل ؟؟
المشاركات : 33
المواضيع 0
الإنتساب : Sep 2017
السمعة :
10
الشكر: 309
تم شكره 32 مرات في 24 مشاركات
09-09-17, 03:57 PM
(آخر تعديل لهذه المشاركة : 09-09-17, 04:00 PM {2} بواسطة ola.)
انت كنت ماشي صح باستخدام Parameters لكن عندك خطأ في ترتيب اسطرها
|