تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كود تعديل؟؟
#1
الكود كان شغال لما كنت ماخذ         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

هاذا الكود بعد التعديل وضلت نفس المشكله ما هو السبب


الملفات المرفقة صورة/صور
   

.rar   WindowsApplication1.rar (الحجم : 1.1 م ب / التحميلات : 42)
الرد }}}
تم الشكر بواسطة:
#2
كل ما عليك اخى الفاضل

استبدال كل كود الفوم 8 بالكود التالى
كود :
Imports System.Data.OleDb

Public Class Form8

   Dim con As New OleDbConnection("provider=microsoft.ACE.OLEDB.12.0; data source=database.accdb")
   Dim cmd As New OleDbCommand()
   Dim da As New OleDbDataAdapter()
   Dim dt As New DataTable
   Sub load_date()
       dt.Clear()
       cmd = New OleDbCommand("SELECT [رقم الايدي], m, [تاريخ تعين الدرس], [الساعه], [عدد الدروس], [حضور/غياب] FROM table2 WHERE m=@m ", con)
       cmd.Parameters.Add(New OleDbParameter("@m", OleDbType.VarChar)).Value = Label1.Text
       da = New OleDbDataAdapter(cmd)
       da.Fill(dt)
   End Sub
   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
       load_date()
       DataGridView1.DataSource = dt
       DataGridView1.Refresh()
   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()

   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
End Class

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

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

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: حريف برمجة , baha , mostafa12
#3
شكرا لك جاري التجربه اخي

يضهر هاذا الخطا
System.InvalidOperationException: 'يتطلب الأسلوب OleDbCommand.Prepare تعيين Size غير صفري بشكل صريح لجميع المعلمات ذات الطول المتغير.'
عند استدعاء داله ال save
الرد }}}
تم الشكر بواسطة: حريف برمجة , elgokr
#4
الحمد لله والشكر لله
والحمد لله على كل حال

كل التعديلات السابقة كان على العرض
ولكن هذه الرسالة تخص عملية الحفظ

واذا تلاحظ هنا فى هذا السطر
كود :
Dim save As New OleDbCommandBuilder(da)

انت كاتب da وفى الفورم كله
لا يوجد اى بيانات تخص المعرف da خالص
حتى فى حدث زر الحفظ التعبئة بيتم على dt
اذا قمت بتغيير da الى dt سيتم حل مشكلة هذه الرسالة

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

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: mostafa12 , حريف برمجة
#5
شكرا اخي لم الاحظ

لكن اخي لا يمكنني وضع dt لانه يضهر اخطاء


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة: elgokr
#6
(16-10-19, 12:41 AM)mostafa12 كتب : شكرا اخي لم الاحظ

لكن اخي لا يمكنني وضع dt لانه يضهر اخطاء

الشكر لله والحمد لله
والحمد لله على كل حال

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

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: mostafa12 , حريف برمجة , حريف برمجة
#7
انا مستعمل داله الحفظ بجميع الفورم وتعمل 100 بلميه

Sub save_date()
Dim save As New OleDbCommandBuilder(da)
save.QuotePrefix = "["
save.QuoteSuffix = "]"
da.Update(dt)
dt.AcceptChanges()
End Sub
الرد }}}
تم الشكر بواسطة:
#8
ممكن مساعده بموضوع اخر الا وهو البحث عن طريق الاسم باستخدام هذا الاستعلام
هاذا لكود ولكن توجد مشكله
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)

تم الحل شكرا لكم
الرد }}}
تم الشكر بواسطة:
#9
شكرا لك اخي تغلبت معي من كثر الاسىئله
الرد }}}
تم الشكر بواسطة:
#10
مرحباً اخى mostafa12
الشكر لله والحمد لله
والحمد لله على كل حال

هذا ما اشرت له اخى الحبيب كون da
حيث لا تحتوى على قيمة والمقصود بـ dt هو تعبئة da به
لان السطر المستخدم لا ياخد قيمة الا الداتا ادبتر فقط

بخصوص
(16-10-19, 04:23 AM)mostafa12 كتب : تغلبت معي من كثر الاسىئله

لا عليك اخى الحبيب الاهم انك تتعلم لما تقوم به
وان تصل لك المعلومة كاملاً وليس التعامل مع الامر كا نسخ ولصق فقط
ولهذا قمت بتعدل كودي السابق وجعله الكود بطريقتك المستخدمة عندماً لاحظت كونك استخدمت الكود
كا نسخ ولصق وشعرت كونك لم تستوعب لماذا كتبت هذا الكود مسبقاً مختلف عن طريقتك فهذا غير محب

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

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: mostafa12


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تعديل على فاتورة مبيعات خالد كامل1 4 124 26-03-24, 10:49 PM
آخر رد: خالد كامل1
  تعديل كود ارسال صورة الى الواتس new_programer 2 170 21-03-24, 10:07 PM
آخر رد: new_programer
  تعديل صب المجموع الكلي والمعدل والتقدير مصمم هاوي 3 173 19-03-24, 01:33 AM
آخر رد: مصمم هاوي
  تعديل طول حقل معين في جميع جداول القاعدة atefkhalf2004 1 108 09-03-24, 03:17 AM
آخر رد: atefkhalf2004
  تعديل بيانات عمود DataGridView دفعة واحدة مصمم هاوي 2 198 05-03-24, 08:27 PM
آخر رد: مصمم هاوي
  ممكن تعديل في كود التفقيط للارقام melad2002 2 365 01-01-24, 08:47 PM
آخر رد: melad2002
  [VB.NET] اريد تعديل في الكود عند طباعة DGV abu_hisham7 1 443 03-12-23, 02:40 AM
آخر رد: abu_hisham7
  [VB.NET] محتاج مساعدة تعديل على كود ZEEN4ZEEN 4 434 08-10-23, 09:11 PM
آخر رد: ZEEN4ZEEN
  محتاج تعديل على سورس كود - حفظ البيانات بدون قاعدة بيانات new_programer 5 680 30-08-23, 12:21 AM
آخر رد: atefkhalf2004
  اريد اضافة متغيراخر داخل Listbox1 احتاج تعديل بسيط moh61 0 354 05-08-23, 02:29 PM
آخر رد: moh61

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


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