منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
سؤال يا احبتى فى الله - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : سؤال يا احبتى فى الله (/showthread.php?tid=48394)



سؤال يا احبتى فى الله - خالد كامل1 - 28-04-24

السلام عليكم والرحمه عندى سؤال لو سمحتو
كيف احرر داتا جريد فيو مرتبطه برمجيا مع قاعدة بيانات لكى استطيع ااعدل على الاصناف اللى فيها



RE: سؤال يا احبتى فى الله - Taha Okla - 28-04-24

وعليكم السلام ورحمة الله وبركاته


أفتح مشروع جديد : 
وأضف عليه الأدوات التالية :
- BindingNavigator1
- DataGridView1

وانسخ الكود التالي لمشروعك :
- تصريح المكتبة المستخدمة :
كود :
Imports System.Data.OleDb

الكود (لا تنسى تعديل اسم قاعدة البيانات ومسارها واسم الجدول في كود الربط مع قاعدة البيانات) : 
كود :
   Dim Adapter1 As OleDbDataAdapter
   Dim ds As New DataSet()


   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Dim strConnection As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=UsersData.accdb;Persist Security Info=True"
       Dim strSQLq As String = "Select * From Salaries"

       Adapter1 = New OleDbDataAdapter(strSQLq, strConnection)
       Adapter1.Fill(ds)

       Dim bs As New BindingSource()
       bs.DataSource = ds.Tables(0)

       BindingNavigator1.BindingSource = bs
       DataGridView1.DataSource = bs
   End Sub

   Private Sub DataGridView1_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
       Try
           Dim x As Integer = DataGridView1.CurrentCell.RowIndex
           Dim y As Integer = DataGridView1.CurrentCell.ColumnIndex
           DataGridView1.CurrentCell = DataGridView1(y, x + 1)
           DataGridView1.CurrentCell = DataGridView1(y, x)
           DataGridView1.CurrentCell = DataGridView1(y, x + 1)
           DataGridView1.CurrentCell = DataGridView1(y, x)

           Dim cb As New OleDbCommandBuilder(Adapter1)
           Adapter1.Update(ds)

           ds.Clear()            ' من أجل تحديث كامل السجل
           Adapter1.Fill(ds)
       Catch ex As Exception
           'لم نضع هنا عرض الرسائل ليتجاز الخطأ بسلاسة
           'لأنه خطأ حفظ معلومات
           'اذا ما تجاوز سطر وخلية سيتم حفظ المدخلات
       End Try
   End Sub

   Private Sub DataGridView1_RowsRemoved(sender As Object, e As DataGridViewRowsRemovedEventArgs) Handles DataGridView1.RowsRemoved
       Try
           Dim cb As New OleDbCommandBuilder(Adapter1)
           Adapter1.Update(ds)
       Catch ex As Exception

       End Try
   End Sub

ثم شغل وجرب البرنامج، ولاحظ أن الحفظ على البيانات يتم بعد الانتقال لسطر جديد ..، أو بعد مسح سطر من الداتا جريد ..
يجب أن يكون هناك حقل (مفتاح رئيسي ضمن جدول البيانات حتى يعمل البرنامج بنجاح).

بالتوفيق ..


RE: سؤال يا احبتى فى الله - خالد كامل1 - 28-04-24

وبافتراض انى اريد البقاء على جميع الاصناف الموجوده فى الدتا جريد فيو واضافه صنف غير موجود قى الداتا جريد فيو


RE: سؤال يا احبتى فى الله - Taha Okla - 28-04-24

لو جربت لعرفت أنه يمكنك التعديل والاضافة والحذف..


RE: سؤال يا احبتى فى الله - خالد كامل1 - 02-05-24

بارك الله فيك اخي الكريم