تقييم الموضوع :
  • 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 بشكل ديناميكي غير معتمد مقابل العديد من الجداول الأساسية.
ممكن تستخدم طريقة اخرى .. مثلا تعرض الصف في مربعات نص وتحدث
الرد
تم الشكر بواسطة: دمعة المقهور
#3
لجات لحيلة بسيطة وهي بعد ان يتم فحص هل تم تحديث الداتاست اعمل  For لكل الصفوف واقوم بفحص  هل  الحقل بالداتاجريد مثلها في الجدول عن طريقة دالة بسيط استعلام
ان كنت تريد المثال اكتب رد
الرد
تم الشكر بواسطة: دمعة المقهور
#4
من خلال بحثي في الانترنت وجدت موضوع في هذا الشأن إلا أني لم استطيع فهمة .... لو حد يستطيع مساعدتي اكون شاكرا له
الموضوع في الرابط التالي:
https://msdn.microsoft.com/en-us/library/xzb1zw3x.aspx
الرد
تم الشكر بواسطة:
#5
شكرأ أخي سعود على تتفاعلك الطيب معي و أعتذر عن التأخر في الرد

أكيد أريد المثال و انا مستنية بفارغ الصبر
الرد
تم الشكر بواسطة:
#6
المثال حذفتهSmile لكن ماعليك اسوي واحد جديد لان الفكرة لسى موجودة
انتظر...
الرد
تم الشكر بواسطة:
#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
الرد
تم الشكر بواسطة: دمعة المقهور
#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
شكراً أخي وأعرني على عدم الرد رغم انه بعد سنوات لكن أعذرني أخي وطريقتك جاى وقتها وراح أطبقها الأن
الرد
تم الشكر بواسطة: سعود


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مشكلة في كود صلاحيات المستخدمين مصمم هاوي 4 130 30-01-19, 06:32 PM
آخر رد: عبد العزيز البسكري
  مشكلة في الترقيم التلقائي للطلبة حسب السنة الدراسية ahmed_elwerfalli 1 133 29-12-18, 03:34 AM
آخر رد: ahmed_elwerfalli
  مشكلة قاعدة البيانات لا تقبل البيانات بعد التنصيب abozeyd 8 461 10-09-18, 08:02 AM
آخر رد: elgokr
  [VB.NET] مشكلة فى زر Login الخاص بشاشة الدخول Michael Maher 6 1,082 18-05-18, 02:14 AM
آخر رد: Michael Maher
  [SQL] مشكلة تواجهنى عند محاولة استرجاع قاعده بيانات ahmedmansour 1 460 27-11-17, 09:39 PM
آخر رد: حريف برمجة
  [VB.NET] مشكلة في تحديث البيانات larbihamri 2 499 04-11-17, 07:37 PM
آخر رد: larbihamri
  [سؤال] مشكلة الاختلاف بين ترتيب الصفوف في قاعدة البيانات والداتا جريد فيو waelalmsry75 2 645 18-08-17, 05:40 PM
آخر رد: waelalmsry75
  مشكلة في كود البحث Search khaled12345 5 746 16-07-17, 08:22 PM
آخر رد: سعود
  مشكلة في الاتصال مع ملفات ال SQL الخارجية .mdf khaled12345 13 1,360 16-07-17, 06:21 AM
آخر رد: ahmed6610
  مشكلة في كود الحذف Delete khaled12345 5 604 15-07-17, 10:58 PM
آخر رد: أبوبكر سويدان

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


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