تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة حفظ تعديلات الداتاقريد
#1
السلام عليكم

ارجوا المساعدة لو سمحتوا .....

كيف يمكن حفظ تعديلات الداتاقريد فيوا  علما انه تمت تعبئة الداتا قريد من خلال استعلام من قاعدة البيانات ( من مجموعة جداول وليس جدول واحد )
حاولت استخدم هذا الكود

كود :
If ds.HasChanges = True Then
           Me.Validate()
           CmdB.DataAdapter = da
           'ds.AcceptChanges()
           da.Update(ds, "showd")

           MsgBox("تم حفظ البيانات بنجاح", MsgBoxStyle.Information, "حفظ")
           ' Exit Sub
       Else
           MsgBox("لم تقم بأي تغيرات", MsgBoxStyle.Exclamation, "حفظ")
       End If
لكن تظهر هذه الرسالة :
Dynamic SQL generation is not supported against multiple base tables.
الرد }}}
تم الشكر بواسطة:
#2
إن توليد SQL بشكل ديناميكي غير معتمد مقابل العديد من الجداول الأساسية.
ممكن تستخدم طريقة اخرى .. مثلا تعرض الصف في مربعات نص وتحدث
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: دمعة المقهور , asemshahen5
#3
لجات لحيلة بسيطة وهي بعد ان يتم فحص هل تم تحديث الداتاست اعمل  For لكل الصفوف واقوم بفحص  هل  الحقل بالداتاجريد مثلها في الجدول عن طريقة دالة بسيط استعلام
ان كنت تريد المثال اكتب رد
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: دمعة المقهور , asemshahen5
#4
من خلال بحثي في الانترنت وجدت موضوع في هذا الشأن إلا أني لم استطيع فهمة .... لو حد يستطيع مساعدتي اكون شاكرا له
الموضوع في الرابط التالي:
https://msdn.microsoft.com/en-us/library/xzb1zw3x.aspx
الرد }}}
تم الشكر بواسطة: asemshahen5
#5
شكرأ أخي سعود على تتفاعلك الطيب معي و أعتذر عن التأخر في الرد

أكيد أريد المثال و انا مستنية بفارغ الصبر
الرد }}}
تم الشكر بواسطة: asemshahen5
#6
المثال حذفتهSmile لكن ماعليك اسوي واحد جديد لان الفكرة لسى موجودة
انتظر...
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: asemshahen5
#7
كود :
Public Class Form1
   Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=db.accdb"
   Dim con As New OleDb.OleDbConnection(str)

   Dim sql As String = "select tb1.tid,tb1.tn,tb2.tid,tb2.mobile from tb1,tb2 where tb2.tb1tid=tb1.tid"
   Dim ds As DataSet
   Dim da As OleDb.OleDbDataAdapter
   Dim cm As OleDb.OleDbCommandBuilder

   Private Sub conon()
       If con.State = ConnectionState.Closed Then
           con.Open()
       End If
   End Sub
   Private Function isfound(ByVal tb As String, ByVal tn As String) As Boolean
       Dim cm As New OleDb.OleDbCommand("", con)
       cm.Parameters.Clear()



       Select Case tb
           Case "tb1"
               cm.CommandText = "select count(tid) from tb1 where tn='" & tn & "'"

               conon()
               If cm.ExecuteScalar > 0 Then
                   Return True
               Else
                   Return False
               End If


           Case "tb2"
               cm.CommandText = "select count(tid) from tb2 where mobile='" & tn & "'"

               conon()
               If cm.ExecuteScalar > 0 Then
                   Return True
               Else
                   Return False
               End If

           Case Else
               Return False
       End Select

   End Function





   Private Sub gd()
       dg.DataSource = Nothing
       dg.Rows.Clear()
       ds = New DataSet
       da = New OleDb.OleDbDataAdapter(sql, con)
       cm = New OleDb.OleDbCommandBuilder(da)


       da.Fill(ds, "tb1")
       '  da.Fill(ds, "tb2")

       dg.DataSource = ds
       dg.DataMember = "tb1"

       dg.Columns(0).HeaderText = "م"
       dg.Columns(1).HeaderText = "الاسم"

       '  dg.Columns(2).Visible = False
       dg.Columns(3).HeaderText = "الجوال"
   End Sub
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       gd()
   End Sub

   Private Function fupdate(ByVal tb As String, ByVal tn As String, ByVal mo As String, ByVal id As Integer) As Boolean
       Dim cm As New OleDb.OleDbCommand("", con)
       cm.Parameters.Clear()
       conon()
       Select Case tb
           Case "tb1"
               cm.CommandText = "update tb1 set tn=@tn where tid=@tid"
               cm.Parameters.AddWithValue("@tn", tn)
               cm.Parameters.AddWithValue("@tid", id)

               Try
                   cm.ExecuteNonQuery()
                   Return True
               Catch ex As Exception
                   MsgBox(Err.Description)
                   Return False
               End Try


           Case "tb2"

               cm.CommandText = "update tb2 set mobile=@mobile where tid=@tid"
               cm.Parameters.AddWithValue("@mobile", mo)
               cm.Parameters.AddWithValue("@tid", id)

               Try
                   cm.ExecuteNonQuery()
                   Return True
               Catch ex As Exception
                   MsgBox(Err.Description)
                   Return False
               End Try
           Case Else
               Return False
       End Select


   End Function


   Private Sub btn_update_Click(sender As Object, e As EventArgs) Handles btn_update.Click
       For r = 0 To dg.Rows.Count - 2
           Dim tn As String = dg.Rows(r).Cells(1).Value
           If fupdate("tb1", tn, Nothing, dg.Rows(r).Cells(0).Value) Then
               MsgBox("تم حفظ الاسم")
           End If





           Dim mo As String = dg.Rows(r).Cells(3).Value
           If fupdate("tb2", Nothing, mo, dg.Rows(r).Cells(2).Value) Then
               MsgBox("تم حفظ الجوال")
           End If


       Next
   End Sub
End Class

هذا الكلاس و dg هي daatgridview
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: دمعة المقهور , asemshahen5
#8
(24-04-15, 08:08 PM)سعود كتب :
كود :
Public Class Form1
   Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=db.accdb"
   Dim con As New OleDb.OleDbConnection(str)

   Dim sql As String = "select tb1.tid,tb1.tn,tb2.tid,tb2.mobile from tb1,tb2 where tb2.tb1tid=tb1.tid"
   Dim ds As DataSet
   Dim da As OleDb.OleDbDataAdapter
   Dim cm As OleDb.OleDbCommandBuilder

   Private Sub conon()
       If con.State = ConnectionState.Closed Then
           con.Open()
       End If
   End Sub
   Private Function isfound(ByVal tb As String, ByVal tn As String) As Boolean
       Dim cm As New OleDb.OleDbCommand("", con)
       cm.Parameters.Clear()



       Select Case tb
           Case "tb1"
               cm.CommandText = "select count(tid) from tb1 where tn='" & tn & "'"

               conon()
               If cm.ExecuteScalar > 0 Then
                   Return True
               Else
                   Return False
               End If


           Case "tb2"
               cm.CommandText = "select count(tid) from tb2 where mobile='" & tn & "'"

               conon()
               If cm.ExecuteScalar > 0 Then
                   Return True
               Else
                   Return False
               End If

           Case Else
               Return False
       End Select

   End Function





   Private Sub gd()
       dg.DataSource = Nothing
       dg.Rows.Clear()
       ds = New DataSet
       da = New OleDb.OleDbDataAdapter(sql, con)
       cm = New OleDb.OleDbCommandBuilder(da)


       da.Fill(ds, "tb1")
       '  da.Fill(ds, "tb2")

       dg.DataSource = ds
       dg.DataMember = "tb1"

       dg.Columns(0).HeaderText = "م"
       dg.Columns(1).HeaderText = "الاسم"

       '  dg.Columns(2).Visible = False
       dg.Columns(3).HeaderText = "الجوال"
   End Sub
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       gd()
   End Sub

   Private Function fupdate(ByVal tb As String, ByVal tn As String, ByVal mo As String, ByVal id As Integer) As Boolean
       Dim cm As New OleDb.OleDbCommand("", con)
       cm.Parameters.Clear()
       conon()
       Select Case tb
           Case "tb1"
               cm.CommandText = "update tb1 set tn=@tn where tid=@tid"
               cm.Parameters.AddWithValue("@tn", tn)
               cm.Parameters.AddWithValue("@tid", id)

               Try
                   cm.ExecuteNonQuery()
                   Return True
               Catch ex As Exception
                   MsgBox(Err.Description)
                   Return False
               End Try


           Case "tb2"

               cm.CommandText = "update tb2 set mobile=@mobile where tid=@tid"
               cm.Parameters.AddWithValue("@mobile", mo)
               cm.Parameters.AddWithValue("@tid", id)

               Try
                   cm.ExecuteNonQuery()
                   Return True
               Catch ex As Exception
                   MsgBox(Err.Description)
                   Return False
               End Try
           Case Else
               Return False
       End Select


   End Function


   Private Sub btn_update_Click(sender As Object, e As EventArgs) Handles btn_update.Click
       For r = 0 To dg.Rows.Count - 2
           Dim tn As String = dg.Rows(r).Cells(1).Value
           If fupdate("tb1", tn, Nothing, dg.Rows(r).Cells(0).Value) Then
               MsgBox("تم حفظ الاسم")
           End If





           Dim mo As String = dg.Rows(r).Cells(3).Value
           If fupdate("tb2", Nothing, mo, dg.Rows(r).Cells(2).Value) Then
               MsgBox("تم حفظ الجوال")
           End If


       Next
   End Sub
End Class

هذا الكلاس و dg هي daatgridview
شكراً أخي وأعرني على عدم الرد رغم انه بعد سنوات لكن أعذرني أخي وطريقتك جاى وقتها وراح أطبقها الأن
الرد }}}
تم الشكر بواسطة: سعود , asemshahen5


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [C#.NET] مشكلة في مجلد قاعدة البيانات kamel1978 3 684 06-10-24, 06:26 PM
آخر رد: Taha Okla
  [سؤال] حول مشكلة توافق نوع البيانات عند الاستعلام في اكسل justforit 4 695 23-05-24, 05:35 AM
آخر رد: justforit
Big Grin مشكلة لسه ماحدش جاوبني عليها cmd.excutenunquery Medo84 2 1,755 19-05-24, 12:03 PM
آخر رد: غزة العزة
  مشكلة فى الجريد فيو salah525 10 1,354 05-11-23, 08:15 PM
آخر رد: justforit
  مشكلة عند الاتصال ب sql server 2014 bassant 1 1,325 27-08-23, 12:26 PM
آخر رد: رضوان الجماعي
  [سؤال] مشكلة فى عرض الصورة من ادخل قاعدة البيانات alims 2 1,706 17-11-21, 10:09 AM
آخر رد: سعود
  مشكلة ظهور بياانات حقلين في قاعدة بيانات على شكل علامة استفهام bassant 5 2,088 17-10-21, 02:07 PM
آخر رد: abubasilIraq
  مشكلة عند الاتصال ب sql server 2014 bassant 4 1,822 16-09-21, 02:52 PM
آخر رد: asemshahen5
  [سؤال] مشكلة اضافة التاريخ مع قاعدة بيانات alims 6 2,832 25-01-21, 02:45 AM
آخر رد: alims
  مشكلة في إظهار عمود التاريخ في داتا جريد فيو mofhmy 5 7,098 12-11-20, 12:13 PM
آخر رد: bahaa.elkomy@yahoo.com

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


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