الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طريقة تشبه Dlookup في vb.net باستخدام DataReader

بدأه Khodor1985 في 8 أبريل 2014 · 1 رد · 467 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرجمن الرحيم

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

أحببت أن أفيد الإخوة المشاركين في هذا المنتدى القيم عن طريقة بسيطة في استدعاء البيانات من قاعدة البيانات أكسس أو 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

 

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

#2

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 v1 = dr.item("Barcode")

Dim v2 = dr.item("Item")

Dim v3 = dr.item("SalePrice")

Me.datsgridview1.rows.add(v1, v2, v3)

End While

()dr.Close

()Con.Close

TextBox1.Text = Nothing

End IF

Catch ex As Exception

(msgBox(ex.Message

End Try End Sub

 هذه الطريقة تستخدم في حال كان datagridview unbound

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

مواضيع مشابهة