اريد ان اربط جدول واحد في قاعدة البيانات باكتر من button بحيث عن طريق الفئة مثلا الجدول يكون فيه عدة عدة اصنف كلما ضغطت على button يظهر لي في datagridview بيانات ذلك الصنف المعين مثلا لدي منظومة قهوة عندما اريد ان اضغط على button قهوة يظهر لي في datagridview بيانات القهوة فقط و اذا اردت ان اضغطت على ساندوتشات يظهر لي في datagridview بيانات ساندوتشات فقط و الى الخ
نفس كود جلب البيانات الذي تستعمله فقط قم بحذف الأصناف الزائدة منه و أترك الذي تحتاجه إذا كنت تريد كود أو تفصيل أكثر أرجو الرد
(06-12-20, 09:10 PM)aldery كتب : [ -> ]نفس كود جلب البيانات الذي تستعمله فقط قم بحذف الأصناف الزائدة منه و أترك الذي تحتاجه إذا كنت تريد كود أو تفصيل أكثر أرجو الرد
Sub fill2()
dt.Clear()
DataGridView1.Rows.Clear()
Query = "select * from Table_Items "
da = New SqlDataAdapter(Query, Module1.con)
da.Fill(dt)
For i As Integer = 0 To dt.Rows.Count - 1
DataGridView1.Rows.Add()
DataGridView1.Rows(i).Cells(0).Value = i + 1
DataGridView1.Rows(i).Cells(1).Value = dt.Rows(i)(1)
DataGridView1.Rows(i).Cells(2).Value = dt.Rows(i)(2)
DataGridView1.Rows(i).Cells(3).Value = dt.Rows(i)(3)
DataGridView1.Rows(i).Cells(4).Value = dt.Rows(i)(4)
Next
End Sub
هدا هو كود جلب البيانات ماذا افعل بعدها
السلام عليكم ورحمة الله وبركاته
كل ما عليك هو اضافة عامل التصفية للبيانات التي تريد جلبها من خلال تعديل الاستعلام بهذا الشكل
كود :
Query = "select * from Table_Items Where FieldName=" & Youer Condition
وفقط - تمنياتي بالتوفيق
(07-12-20, 02:01 AM)ADAM12 كتب : [ -> ]
كود :
STOCKBindingsource.filter = "CAT ='COFFEE'"
STOCK الجدول المطلوب
CAT الصنف المطلوب
يعني هكي Table_itemsBlindingsource.filter="Categroy='Coffee' "
(07-12-20, 01:14 AM)أبو عبدالله الحلواني كتب : [ -> ]السلام عليكم ورحمة الله وبركاته
كل ما عليك هو اضافة عامل التصفية للبيانات التي تريد جلبها من خلال تعديل الاستعلام بهذا الشكل
كود :
Query = "select * from Table_Items Where FieldName=" & Youer Condition
وفقط - تمنياتي بالتوفيق
يعني هكي
Query="select * from Table_items where Icategroy=&شن نكتب هنا&
مثلا هكذا
كود :
Query="select * from Table_items where Icategroy = 3"
Icategroy من الاسم اظن انه ID من جدول انواع المنتجات وبالتالي هو خانة تحمل رقم
لتجعل الكود اكثر مرونة ضع الامر كله في اجراء ومرر له رقم المنتج Icategroy ومن ثم تقوم باستدعاءه في الازرار بارقام مختلفة :
كود :
Sub fillWithIcategroy ( Icategroy as integer )
dt.Clear()
DataGridView1.Rows.Clear()
Query="select * from Table_items where Icategroy = @Icategroy"
da = New SqlDataAdapter(Query, Module1.con)
da.SelectCommand.Parameters.AddWithValue("@Icategroy",Icategroy)
da.Fill(dt)
For i As Integer = 0 To dt.Rows.Count - 1
DataGridView1.Rows.Add()
DataGridView1.Rows(i).Cells(0).Value = i + 1
DataGridView1.Rows(i).Cells(1).Value = dt.Rows(i)(1)
DataGridView1.Rows(i).Cells(2).Value = dt.Rows(i)(2)
DataGridView1.Rows(i).Cells(3).Value = dt.Rows(i)(3)
DataGridView1.Rows(i).Cells(4).Value = dt.Rows(i)(4)
Next
End Sub
الان في الزر الخاص بالقهوة مثلا ، لنقل ان رقم القهوة هو 4 يصبح الكود المطلوب هو فقط :
كود :
fillWithIcategroy (4)
للمنتج رقم 3 مثلا :
كود :
fillWithIcategroy (3)
ملاحظات : احذر من ال SQL Injection
ثانيا الكود به تحسينات اكثر من ذلك ، لو كان الامر لي لكنت قمت بعمل دالة تعيد datatable فقط واقوم انا باسنادها للخاصية DataSource دون ملئ البيانات خلية خلية ولكنه يعمل على اي حال ان شاء الله
لم اجرب الكود فعلا كتبته هنا في المحرر مباشرة ارجو ان تقوم بتجريته
كود :
Sub fillWithIcategroy ( Icategroy as string)
dt.Clear()
DataGridView1.Rows.Clear()
Query="select * from Table_items where Icategroy = @Icategroy"
da = New SqlDataAdapter(Query, Module1.con)
da.SelectCommand.Parameters.AddWithValue("@Icategroy",Icategroy)
da.Fill(dt)
For i As Integer = 0 To dt.Rows.Count - 1
DataGridView1.Rows.Add()
DataGridView1.Rows(i).Cells(0).Value = i + 1
DataGridView1.Rows(i).Cells(1).Value = dt.Rows(i)(1)
DataGridView1.Rows(i).Cells(2).Value = dt.Rows(i)(2)
DataGridView1.Rows(i).Cells(3).Value = dt.Rows(i)(3)
DataGridView1.Rows(i).Cells(4).Value = dt.Rows(i)(4)
Next
End Sub
ثم
كود :
fillWithIcategroy ("المشروبات الساخنة")
ليست فكرة جيدة ان يكون حقل Icategroy من نوع نصي ، هذا اهدار لقاعدة البيانات ، ستمتلئ بسرعة وتصبح ابطا في وقت اقل
الافضل انشاء جدول منفصل يحوى الاسم النصي و ال ID والجدول الرئيسي يحوى ال ID فقط
(07-12-20, 05:28 PM)Anas Mahmoud كتب : [ -> ]
كود :
Sub fillWithIcategroy ( Icategroy as string)
dt.Clear()
DataGridView1.Rows.Clear()
Query="select * from Table_items where Icategroy = @Icategroy"
da = New SqlDataAdapter(Query, Module1.con)
da.SelectCommand.Parameters.AddWithValue("@Icategroy",Icategroy)
da.Fill(dt)
For i As Integer = 0 To dt.Rows.Count - 1
DataGridView1.Rows.Add()
DataGridView1.Rows(i).Cells(0).Value = i + 1
DataGridView1.Rows(i).Cells(1).Value = dt.Rows(i)(1)
DataGridView1.Rows(i).Cells(2).Value = dt.Rows(i)(2)
DataGridView1.Rows(i).Cells(3).Value = dt.Rows(i)(3)
DataGridView1.Rows(i).Cells(4).Value = dt.Rows(i)(4)
Next
End Sub
ثم
كود :
fillWithIcategroy ("المشروبات الساخنة")
ليست فكرة جيدة ان يكون حقل Icategroy من نوع نصي ، هذا اهدار لقاعدة البيانات ، ستمتلئ بسرعة وتصبح ابطا في وقت اقل
الافضل انشاء جدول منفصل يحوى الاسم النصي و ال ID والجدول الرئيسي يحوى ال ID فقط
لم افهم "
الافضل انشاء جدول منفصل يحوى الاسم النصي و ال ID والجدول الرئيسي يحوى ال ID فقط"
هل لديك مثال معين من داتا بيز