بسم الله الرجمن الرحيم
السلام عليكم جميعا ورحمة الله وبركاته
أحببت أن أفيد الإخوة المشاركين في هذا المنتدى القيم عن طريقة بسيطة في استدعاء البيانات من قاعدة البيانات أكسس أو SQL إلى BoundDataGridView.
لنبدأ....
لنفترض أن لدينا جدول بعنوان tblItems وجدول tblSales في قاعدة بيانات أكسس والمقصود بالجدول tblItems "جدول الأصناف" والمقصود tblSales "جدول فاتورة المبيعات"
الجدول tblItems يحتوي على الحقول :
- الباركود Barcode
- إسم الصنف Item
- سعر الشراء PurchasePrice
- سعر المبيع SalePrice
- وحدة القياس Unit
الجدول tblSales يحتوي على الحقول :
-- الباركود Barcode
- إسم الصنف Item
- الكمية Qut
- سعر المبيع SalePrice
- وحدة القياس Unit
- المجموع Total
بعد أن ننتهي من إنشاء الجداول في قاعدة البيانات ننتقل إلى المرحلة التالية وهي استدعاء هذه الجداول إلى مشروع VB.net من خلال معالج الإتصال بقاعدة البيانات.
ندرج من نافذة مصدر البيانات جدول tblSales على شكل DataGridView في المشروع.
ندرج مربع نص ونضعه أعلى DataGridView
نحدد مربع النص ثم في تبويب الخصائص المتعلق به نختار الحدث Keydown ونضع بداخله الكود التالي:
قبل أن نضع الكود لا بد أولا من الإعلان عن جملة من المتغيرات في منطقة أو مجال الإعلام (Declaration) لأن لها دور أساسي في صياغة الكود وهي:
أولا لا بد من فتح فضاء الأسماء OLEDB لتمكننا من الإرتباط بقاعدة البيانات أكسس وهو
Imports System.Data.Oledb
ثم الإعلان عن المتغرات التالية:
أولا تحديد مسار ملف قاعدة البيانات
"dim dbPath as String = "D:\Test.accdb "dim ConStr as String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath & ";Persist Security Info=True
ثانيا فتح الإتصال بقاعدة البيانات
(Dim Con as New OLEDBConnection(Constr
ثم بناء جملة SQL لإستدعاء البيانات إلى DataGridView من خلالها
"Dim sqlstr as String = "Select * From tblItems Where Barcode=@Barcode
بعد أن انتهينا من الإعلان عن المتغيرات نعود إلى حدث Keydown في مربع النص لنضع الأكواد التالية:
Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
Try
If e.KeyCode = Keys.Enter Then
(Dim cmd as New OleDBCommand(sqlstr,Con
(cmd.Parameter.AddWithValue("@Barcode",TextBox1.Text
()Con.Open
Dim dr as OleDbDataReader
dr = cmd.ExecuteReader
while dr.Read
Dim Newrow as TestDataSet.tblSalesRow = TestDataSet.tblSales.NewtblSalesRow
("NewRow.Barcode = dr.Item("Barcode
("Newrow.Item = dr.Item("Item
("Newrow.SalePrice = dr.Item("SalePrice
(TestDataSet.tblSales.Rows.Add(Newrow
End While
()dr.Close
()Con.Close
TextBox1.Text = Nothing
End IF
Catch ex As Exception
(msgBox(ex.Message
End Try
End Subملاحظة مربع النص هو TextBox1
والسلام عليكم ورحمة الله وبركاته