![]() |
|
كود تعديل؟؟ - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : كود تعديل؟؟ (/showthread.php?tid=31764) |
كود تعديل؟؟ - mostafa12 - 15-10-19 الكود كان شغال لما كنت ماخذ da = New OleDbDataAdapter("select * from table2", con) هاي ولكن انا غيرت بلكود وحدث خطا Imports System.Data.OleDb Imports Toast_Notification Imports Bunifu.Framework Public Class Form13 Dim Notification As Notification = New Notification() Dim con As New OleDbConnection("provider=microsoft.ACE.OLEDB.12.0; data source=database.accdb") Dim da As New OleDbDataAdapter() Dim dt As New DataTable Dim table As New DataTable Function load_date() Dim cmd As New OleDbCommand("SELECT [رقم الايدي], m, [تاريخ تعين الدرس], [الساعه], [عدد الدروس], [حضور/غياب] FROM table2 WHERE m=@m ", con) cmd.Parameters.Add(New OleDbParameter("@m", OleDbType.VarChar)).Value = Label1.Text Dim da As New OleDbDataAdapter(cmd) Dim dt As New DataTable da.Fill(dt) Return dt End Function Sub save_date() Dim save As New OleDbCommandBuilder(da) save.QuotePrefix = "[" save.QuoteSuffix = "]" da.Update(dt) dt.AcceptChanges() End Sub Private Sub Form13_Load(sender As Object, e As EventArgs) Handles MyBase.Load DataGridView1.DataSource = load_date() DataGridView1.Refresh() Me.DataGridView1.Columns(1).HeaderText = "اسم المشترك" End Sub Private Sub DataGridView1_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles DataGridView1.MouseDoubleClick End Sub Private Sub DataGridView1_MouseClick(sender As Object, e As MouseEventArgs) Handles DataGridView1.MouseClick Dim pos As String = BindingContext(dt).Position TextBox1.Text = dt.Rows(pos).Item(1).ToString() MaskedTextBox1.Text = dt.Rows(pos).Item(2).ToString() TextBox3.Text = dt.Rows(pos).Item(3).ToString() TextBox4.Text = dt.Rows(pos).Item(4).ToString() If dt.Rows(pos).Item(2).ToString() = "" Then MaskedTextBox1.Text = "" Exit Sub End If MaskedTextBox1.Text = Convert.ToDateTime(dt.Rows(pos).Item(2).ToString()).ToString("yyyy/MM/dd") End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If (String.IsNullOrWhiteSpace(TextBox1.Text) Or String.IsNullOrWhiteSpace(MaskedTextBox1.Text) Or String.IsNullOrWhiteSpace(TextBox3.Text) Or String.IsNullOrWhiteSpace(TextBox4.Text)) Then Notification.Show_Noti(3000, False, "يجب ملئ جميع الخانات", My.Resources.Warning_50, Color.FromArgb(54, 59, 63), Color.FromArgb(222, 223, 225), 80) Return End If Dim pos1 As String = BindingContext(dt).Position dt.Rows(pos1).Item(1) = TextBox1.Text dt.Rows(pos1).Item(2) = MaskedTextBox1.Text dt.Rows(pos1).Item(3) = TextBox3.Text dt.Rows(pos1).Item(4) = TextBox4.Text Notification.Show_Noti(3000, False, "تم التعديل بنجاح", My.Resources.suc_50, Color.FromArgb(54, 59, 63), Color.FromArgb(222, 223, 225), 80) save_date() load_date() End Sub End Class ما هو الخطاء بلفورم 5 اضغط دبل كليك على الرو ليضهر لك فورم وهناك المشكله هاذا هو مشروعي بعرف انو راح تقلويلب المشكله ب dt وda ولكن عدلتهن وبقت المشطله نفس الاشي Imports System.Data.OleDb Public Class Form8 Dim con As New OleDbConnection("provider=microsoft.ACE.OLEDB.12.0; data source=database.accdb") Dim da As New OleDbDataAdapter() Dim dt As New DataTable Dim table As New DataTable Function load_date() Dim cmd As New OleDbCommand("SELECT [رقم الايدي], m, [تاريخ تعين الدرس], [الساعه], [عدد الدروس], [حضور/غياب] FROM table2 WHERE m=@m ", con) cmd.Parameters.Add(New OleDbParameter("@m", OleDbType.VarChar)).Value = Label1.Text Dim da As New OleDbDataAdapter(cmd) Dim dt As New DataTable da.Fill(dt) Return dt End Function Sub save_date() Dim save As New OleDbCommandBuilder(da) save.QuotePrefix = "[" save.QuoteSuffix = "]" da.Update(dt) dt.AcceptChanges() End Sub Private Sub Form8_Load(sender As Object, e As EventArgs) Handles MyBase.Load DataGridView1.DataSource = load_date() DataGridView1.Refresh() Me.DataGridView1.Columns(1).HeaderText = "اسم المشترك" End Sub Private Sub DataGridView1_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles DataGridView1.MouseDoubleClick End Sub Private Sub DataGridView1_MouseClick(sender As Object, e As MouseEventArgs) Handles DataGridView1.MouseClick Dim pos As String = BindingContext(dt).Position TextBox1.Text = dt.Rows(pos).Item(1).ToString() MaskedTextBox1.Text = dt.Rows(pos).Item(2).ToString() TextBox3.Text = dt.Rows(pos).Item(3).ToString() TextBox4.Text = dt.Rows(pos).Item(4).ToString() If dt.Rows(pos).Item(2).ToString() = "" Then MaskedTextBox1.Text = "" Exit Sub End If MaskedTextBox1.Text = Convert.ToDateTime(dt.Rows(pos).Item(2).ToString()).ToString("yyyy/MM/dd") End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If (String.IsNullOrWhiteSpace(TextBox1.Text) Or String.IsNullOrWhiteSpace(MaskedTextBox1.Text) Or String.IsNullOrWhiteSpace(TextBox3.Text) Or String.IsNullOrWhiteSpace(TextBox4.Text)) Then Return End If Dim pos1 As String = BindingContext(dt).Position dt.Rows(pos1).Item(1) = TextBox1.Text dt.Rows(pos1).Item(2) = MaskedTextBox1.Text dt.Rows(pos1).Item(3) = TextBox3.Text dt.Rows(pos1).Item(4) = TextBox4.Text save_date() load_date() End Sub End Class هاذا الكود بعد التعديل وضلت نفس المشكله ما هو السبب RE: كود تعديل؟؟ - elgokr - 15-10-19 كل ما عليك اخى الفاضل
استبدال كل كود الفوم 8 بالكود التالى كود : Imports System.Data.OleDbتم ترتيب وعمل الكود بناءاً على الطريقة التى تستخدمها
حتى لا تشعر بمتاهة فى التعامل مع الامر
تحياتى لك
وتمنياتى لك التوفيق
RE: كود تعديل؟؟ - mostafa12 - 15-10-19 شكرا لك جاري التجربه اخي يضهر هاذا الخطا System.InvalidOperationException: 'يتطلب الأسلوب OleDbCommand.Prepare تعيين Size غير صفري بشكل صريح لجميع المعلمات ذات الطول المتغير.' عند استدعاء داله ال save RE: كود تعديل؟؟ - elgokr - 16-10-19 الحمد لله والشكر لله
والحمد لله على كل حال
كل التعديلات السابقة كان على العرض
ولكن هذه الرسالة تخص عملية الحفظ
واذا تلاحظ هنا فى هذا السطر كود : Dim save As New OleDbCommandBuilder(da)انت كاتب da وفى الفورم كله
لا يوجد اى بيانات تخص المعرف da خالص
حتى فى حدث زر الحفظ التعبئة بيتم على dt
اذا قمت بتغيير da الى dt سيتم حل مشكلة هذه الرسالة
تحياتى لك
وتمنياتى لك التوفيق
RE: كود تعديل؟؟ - mostafa12 - 16-10-19 شكرا اخي لم الاحظ لكن اخي لا يمكنني وضع dt لانه يضهر اخطاء RE: كود تعديل؟؟ - elgokr - 16-10-19 (16-10-19, 12:41 AM)mostafa12 كتب : شكرا اخي لم الاحظ الشكر لله والحمد لله
والحمد لله على كل حال
تحياتى لك
وتمنياتى لك التوفيق
RE: كود تعديل؟؟ - mostafa12 - 16-10-19 انا مستعمل داله الحفظ بجميع الفورم وتعمل 100 بلميه Sub save_date() Dim save As New OleDbCommandBuilder(da) save.QuotePrefix = "[" save.QuoteSuffix = "]" da.Update(dt) dt.AcceptChanges() End Sub RE: كود تعديل؟؟ - mostafa12 - 16-10-19 ممكن مساعده بموضوع اخر الا وهو البحث عن طريق الاسم باستخدام هذا الاستعلام هاذا لكود ولكن توجد مشكله dt.Clear() da = New OleDbDataAdapter("SELECT Max([رقم الايدي]) As [رقم الايدي],m, Max([تاريخ تعين الدرس]) As [تاريخ تعين الدرس], last([الساعه]) As[الساعه] , Max([عدد الدروس]) As [عدد الدروس] ,Last([حضور/غياب]) as[حضور/غياب] FROM table2 GROUP BY m where m Like '%" + TextBox5.Text.Trim + "%'", con) da.Fill(dt) If TextBox5.Text = "" Then load_date() End If والي بعرف ح السوال قبل يساعدني يضهر هاذا الخطا System.InvalidOperationException: 'يتطلب الأسلوب OleDbCommand.Prepare تعيين Size غير صفري بشكل صريح لجميع المعلمات ذات الطول المتغير.' عند استدعاء داله ال save تم حل مشكله الحفظ يهذه الطريقه هل هذه الطريقه جيده ام لا اني قمت بتعريف متغير اخر Dim dk As New OleDbDataAdapter("select * from table2", con) وبقيت هاذا القديم cmd = New OleDbCommand("SELECT [رقم الايدي], m, [تاريخ تعين الدرس], [الساعه], [عدد الدروس], [حضور/غياب] FROM table2 WHERE m=@m ", con) تم الحل شكرا لكم RE: كود تعديل؟؟ - mostafa12 - 16-10-19 شكرا لك اخي تغلبت معي من كثر الاسىئله RE: كود تعديل؟؟ - elgokr - 17-10-19 مرحباً اخى mostafa12
الشكر لله والحمد لله
والحمد لله على كل حال
هذا ما اشرت له اخى الحبيب كون da
حيث لا تحتوى على قيمة والمقصود بـ dt هو تعبئة da به
لان السطر المستخدم لا ياخد قيمة الا الداتا ادبتر فقط
بخصوص (16-10-19, 04:23 AM)mostafa12 كتب : تغلبت معي من كثر الاسىئله لا عليك اخى الحبيب الاهم انك تتعلم لما تقوم به
وان تصل لك المعلومة كاملاً وليس التعامل مع الامر كا نسخ ولصق فقط
ولهذا قمت بتعدل كودي السابق وجعله الكود بطريقتك المستخدمة عندماً لاحظت كونك استخدمت الكود
كا نسخ ولصق وشعرت كونك لم تستوعب لماذا كتبت هذا الكود مسبقاً مختلف عن طريقتك فهذا غير محب
تحياتى لك
وتمنياتى لك التوفيق
|