تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] اريد مساعدة شباب
#1
اريد ان اربط جدول واحد في قاعدة البيانات  باكتر من button بحيث عن طريق الفئة مثلا الجدول يكون فيه عدة عدة اصنف كلما ضغطت على button يظهر لي في datagridview بيانات ذلك الصنف المعين مثلا لدي منظومة قهوة عندما اريد ان اضغط على button قهوة يظهر لي في datagridview  بيانات القهوة فقط و اذا اردت ان اضغطت على ساندوتشات يظهر لي في datagridview  بيانات ساندوتشات فقط و الى الخ
الرد
تم الشكر بواسطة:
#2
نفس كود جلب البيانات الذي تستعمله فقط قم بحذف الأصناف الزائدة منه و أترك الذي تحتاجه إذا كنت تريد كود أو تفصيل أكثر أرجو الرد
الْحَمْدُ لِلَّهِ حَمْدًا كَثِيرًا طَيِّبًا مُبَارَكًا فِيهِ

رَبِّي أَرْزُقْنِي مُسْتَقْبَلاً أَجَمَلَ مِمَّا تَمَنَّيْتُ

وَاَجْعَل لِي فِيْ هَذِهِ الدُّنْيَا - أُنَاساً يَدْعُونَ لِي بَعْدَ أَنْ أَغِيْب

حسابي في تلكرام

 
الرد
تم الشكر بواسطة:
#3
(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
هدا هو كود جلب البيانات ماذا افعل بعدها
الرد
تم الشكر بواسطة:
#4
السلام عليكم ورحمة الله وبركاته
كل ما عليك هو اضافة عامل التصفية للبيانات التي تريد جلبها من خلال تعديل الاستعلام بهذا الشكل
كود :
Query = "select * from Table_Items Where FieldName=" & Youer Condition
وفقط - تمنياتي بالتوفيق
الرد
تم الشكر بواسطة:
#5
كود :
STOCKBindingsource.filter = "CAT ='COFFEE'"
STOCK الجدول المطلوب
CAT الصنف المطلوب
الرد
تم الشكر بواسطة:
#6
(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=&شن نكتب هنا&
الرد
تم الشكر بواسطة:
#7
مثلا هكذا

كود :
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 دون ملئ البيانات خلية خلية ولكنه يعمل على اي حال ان شاء الله
لم اجرب الكود فعلا كتبته هنا في المحرر مباشرة ارجو ان تقوم بتجريته
الرد
تم الشكر بواسطة:
#8
(07-12-20, 05:12 PM)Anas Mahmoud كتب : مثلا هكذا

كود :
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 دون ملئ البيانات خلية خلية ولكنه يعمل على اي حال ان شاء الله
لم اجرب الكود فعلا كتبته هنا في المحرر مباشرة ارجو ان تقوم بتجريته

(07-12-20, 05:19 PM)Osama_NY كتب :
(07-12-20, 05:12 PM)Anas Mahmoud كتب : مثلا هكذا

كود :
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 دون ملئ البيانات خلية خلية ولكنه يعمل على اي حال ان شاء الله
لم اجرب الكود فعلا كتبته هنا في المحرر مباشرة ارجو ان تقوم بتجريته

(07-12-20, 05:19 PM)Osama_NY كتب :
(07-12-20, 05:12 PM)Anas Mahmoud كتب : مثلا هكذا

كود :
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 دون ملئ البيانات خلية خلية ولكنه يعمل على اي حال ان شاء الله
لم اجرب الكود فعلا كتبته هنا في المحرر مباشرة ارجو ان تقوم بتجريته


الملفات المرفقة صورة/صور
           
الرد
تم الشكر بواسطة:
#9
كود :
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 فقط
الرد
تم الشكر بواسطة:
#10
(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 فقط"
هل لديك مثال معين من داتا بيز
الرد
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم