تقييم الموضوع :
  • 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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مشكلة فى الجريد فيو salah525 10 540 05-11-23, 08:15 PM
آخر رد: justforit
Big Grin مشكلة لسه ماحدش جاوبني عليها cmd.excutenunquery Medo84 1 1,304 27-08-23, 12:47 PM
آخر رد: رضوان الجماعي
  مشكلة عند الاتصال ب sql server 2014 bassant 1 1,004 27-08-23, 12:26 PM
آخر رد: رضوان الجماعي
  [سؤال] مشكلة فى عرض الصورة من ادخل قاعدة البيانات alims 2 1,264 17-11-21, 10:09 AM
آخر رد: سعود
  مشكلة ظهور بياانات حقلين في قاعدة بيانات على شكل علامة استفهام bassant 5 1,632 17-10-21, 02:07 PM
آخر رد: abubasilIraq
  مشكلة عند الاتصال ب sql server 2014 bassant 4 1,415 16-09-21, 02:52 PM
آخر رد: asemshahen5
  [سؤال] مشكلة اضافة التاريخ مع قاعدة بيانات alims 6 2,335 25-01-21, 02:45 AM
آخر رد: alims
  مشكلة في إظهار عمود التاريخ في داتا جريد فيو mofhmy 5 6,558 12-11-20, 12:13 PM
آخر رد: bahaa.elkomy@yahoo.com
Heart مشكلة ال ID في عدم تخزين وترتيب البيانات بشكل منتظم الرائد 5 3,163 18-07-19, 01:42 AM
آخر رد: الرائد
  [سؤال] مشكلة بـ كود جمع حقل الاجمالي norman 0 1,836 06-07-19, 02:47 AM
آخر رد: norman

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


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