منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة في الحفظ في الاكسس
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
تمام امر الحفظ تم لكن لما حاولت جيت افرغ الداتا سيت و املأها ب البيانات تاني اداني الخطأ ده




كود :
Try

           Dim cmd9 As New OleDbCommand

           Dim sql As String = "INSERT INTO mmm (Cient_Name,FaceBook,Client_Number,Address,Details,Feedback,Code) VALUES ('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','','" & DateTime.Now.ToString("HHmmss") & "')"


           conn9 = New OleDbConnection()
           conn9.ConnectionString = Constr9

           cmd9.CommandText = sql
           cmd9.Connection = conn9
           conn9.Open()
           cmd9.ExecuteNonQuery()
           conn9.Close()


       Catch ex As Exception
           MsgBox("فشل في قراءة البيانات")
       End Try

       MsgBox("تم الحفظ بنجاح")
       TextBox1.Clear()
       TextBox2.Clear()
       TextBox3.Clear()
       TextBox4.Clear()
       TextBox5.Clear()
       Me.Hide()

       ds9.Clear()
       ds9 = New DataSet
       adapt9.Fill(ds9, "mmm")
       CRM_Form.DataGridView1.Show()
السلام عليكم اخي سعيد
المشكلة لديك في بقية الاكواد 
هذا الخطأ يختلف عن الخطا السابق
الخطأ يقول يجب ان تكون هناك جملة استعلام جلب بيانات قبل ان يقوم بملء الجدول الذي في الداتاست
اخواني الكرام ياخوفي تكونو طفشتو من آرائي بموضوع الاتصال!
كلامي لمن هي جديدة عليه معلومة الفرق بين الاتصال المتصل و الاتصال المنفصل.
اذا برمجت باتصال منفصل لن تحتاج اي كود اتصال متصل.
وارى الان بهذا الموضوع خليط بين الاتصال المتصل والاتصال المنفصل.
بحثت على السريع باليوتيوب ووجدت رابطين لم اشاهدهما بالكامل لكن يبدو ان الشرح ممتاز

ربط قاعدة بيانات أكسس بالفيجوال بيسك.نت في الوضع المنفصل جزء1
ربط قاعدة بيانات أكسس بالفيجوال بيسك.نت في الوضع المنفصل جزء2



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

شاهدت الشرح  لكن وجدت ان طريقة الاضافة المستخدمة فيه تعقيد قليلا.
بالنسبة لي افضل الاضافة عن طريق الـDataRow
مثلا
PHP كود :
dim row as datarow=dt.newrow
row
(1)=tname.text
dt
.rows.add(row)
da.update(dt)

وللتعديل نفس الشي لكن

dim pos 
as integer=bindingcontext(dt).position
dim row 
as datarow=dt.rows(pos)
row.beginedit
row
(1)= tname.text
row
.endedit
da
.update(dt


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

كود :
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

       If TextBox1.Text = "" Then
           MsgBox("Client Name is Empty", MsgBoxStyle.OkOnly, Title:="warning")
           Return
       Else

           'Try

           If conn9.State = ConnectionState.Closed Then

                   conn9.Open()

               End If
               Dim cmd9 As New OleDbCommand

               Dim pos As Integer = DataGridView1.CurrentRow.Index
               Dim posNm = DataGridView1.Rows(pos).Cells("Cient_Name").Value

               If MsgBox("Are you sure you want update " & posNm, MsgBoxStyle.Question + vbYesNo, Title:="Warning") = vbYes Then


Dim sql As String = "UPDATE mmm SET Feedback = '" & TextBox6.Text & "', WHERE Cient_Name =" & posNm
           
   cmd9.CommandText = sql
                   cmd9.Connection = conn9
                   cmd9.ExecuteNonQuery()

               End If
           'Catch ex As Exception
           'MsgBox("فشل في تعديل البيانات")
           'Finally
           conn9.Close()
           'End Try
           MsgBox("تم التعديل بنجاح")

       End If
   End Sub


كود البوزشن

كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


       Dim currentrw As Integer
       currentrw = DataGridView1.CurrentRow.Index
       Dim posNm = DataGridView1.Rows(currentrw).Cells("Cient_Name").Value
       If MsgBox("Are you sure you want update " & posNm, MsgBoxStyle.Question + vbYesNo, Title:="Warning") = vbYes Then
           TextBox1.Text = DataGridView1.Item(0, currentrw).Value.ToString
           TextBox2.Text = DataGridView1.Item(1, currentrw).Value.ToString
           TextBox3.Text = DataGridView1.Item(2, currentrw).Value.ToString
           TextBox4.Text = DataGridView1.Item(3, currentrw).Value.ToString
           TextBox5.Text = DataGridView1.Item(4, currentrw).Value.ToString
           TextBox6.Text = DataGridView1.Item(5, currentrw).Value.ToString


       End If

   End Sub

المحاولة هذه تمام بس عدلتلي الكل الصفوف مش صف واحد

كود :
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

       If TextBox1.Text = "" Then
           MsgBox("Client Name is Empty", MsgBoxStyle.OkOnly, Title:="warning")
           Return
       Else

           'Try

           If conn9.State = ConnectionState.Closed Then

                   conn9.Open()

               End If
               Dim cmd9 As New OleDbCommand

               Dim pos As Integer = DataGridView1.CurrentRow.Index
               Dim posNm = DataGridView1.Rows(pos).Cells("Cient_Name").Value

               If MsgBox("Are you sure you want update " & posNm, MsgBoxStyle.Question + vbYesNo, Title:="Warning") = vbYes Then



               Dim sql As String = "UPDATE mmm SET Feedback = '" & TextBox6.Text & "'"


               cmd9.CommandText = sql
                   cmd9.Connection = conn9
               'conn9.Open()
               cmd9.ExecuteNonQuery()

               End If
           'Catch ex As Exception
           'MsgBox("فشل في تعديل البيانات")
           'Finally
           conn9.Close()
           'End Try
           MsgBox("تم التعديل بنجاح")

       End If
   End Sub
السلام عليكم اخي سعيد
طبعا ستعدل كل السجلات في الجدول !!!!! لماذا؟؟؟
لانك ببساظة لم تضع شرط التعديل وهو  المعرف او الاي دي قلت للبرنامج عدل الحقل كذ وكذا ولم تحدد اي صف
فقام البرنامج بتعديل كل الصفوف
كود التعديل يحتاج الى Where  انظر الى هذه الجملة كمثال
كود :
Dim Cmd As New OleDbcommand("Update tbl_buy_d set code=@code,item_name=@item_name,price=@price,qty=@qty,tot=@tot Where id=@id", con)
جابلي مشكلة تانية 




كود :
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

       If TextBox1.Text = "" Then
           MsgBox("Client Name is Empty", MsgBoxStyle.OkOnly, Title:="warning")
           Return
       Else

           'Try

           If conn9.State = ConnectionState.Closed Then

               conn9.Open()

           End If
           Dim cmd9 As New OleDbCommand

           Dim pos As Integer = DataGridView1.CurrentRow.Index
           Dim posNm = DataGridView1.Rows(pos).Cells("Cient_Name").Value

           If MsgBox("Are you sure you want update " & posNm, MsgBoxStyle.Question + vbYesNo, Title:="Warning") = vbYes Then


               Dim sql As String = "UPDATE mmm SET Feedback='" & TextBox6.Text & "', where Cient_Name='" & posNm & "'"

               'conn9 = New OleDbConnection()
               'conn9.ConnectionString = Constr9

               cmd9.CommandText = sql
               cmd9.Connection = conn9
               'conn9.Open()

               BindingContext(ds9).Position = pos
               cmd9.ExecuteNonQuery()

           End If
           'Catch ex As Exception
           'MsgBox("فشل في تعديل البيانات")
           'Finally
           conn9.Close()
           'End Try
           MsgBox("تم التعديل بنجاح")


           End If
   End Sub
صحح هذا :

PHP كود :
Dim sql As String "UPDATE mmm SET Feedback='" TextBox6.Text "', where Cient_Name='" posNm "'" 

ليكون هكذا :

PHP كود :
Dim sql As String "UPDATE mmm SET Feedback='" TextBox6.Text "' where Cient_Name='" posNm "'" 
عندي ليست بوكس بيعرضي كل قواعد البيانات و لما احدد القاعدة و اضغط على الزر يعرضهالي بس بيضفلي الجداول جمب بعض مبيفضيش الداتا جريد فيو و يعرض الجدول التاني جربت اخلي الداتا جريد فيو = nothing منفعتش بحاجة

كود :
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click


       Dim xs As String = data(Val(ListBox1.SelectedIndex) + 1)

       If ListBox1.SelectedIndex <> -1 Then

           read_data(data(Val(ListBox1.SelectedIndex) + 1))

       End If

   End Sub
المثال التالي به كود الاضافة في الاكسس.
(01-09-19, 03:42 PM)اسامه الهرماوي كتب : [ -> ]المثال التالي به كود الاضافة في الاكسس.

مش اضافة انا اقصد بيعرض كل الجداول جنب بعض بدون ما يفرغ الداتا جريد فيو
الصفحات : 1 2 3