تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] اريد مساعدة
#1
السلام عليكم
عندي سؤالين..الاول : كيف اغير لون صف كامل في داتا جريد فيو مثلا ..اذا قاربت تاريخ صلاحية الصنف على النهاية الى اللون الاصفر و اذا انتهت الى اللون الاحمر 
الثاني : كيف استطيع ان اربط button 3 مختلفة ب داتا جريد فيو واحده لي 3 جداول مختلفة من sql  مثلا..لدي database لمقهى بها 3 تابلات كل تابل به صنف معين اريد ان اعرض 3 تابلات في داتا جريد فيو واحدة عن طريق button يعني كلما اخترت button معين يعرض لي البيانات التي تتبع ذالك button  ...
الرد
تم الشكر بواسطة:
#2
تفضل الطلب الاول :

كود :
   Private Sub DataGridView1_RowPrePaint(sender As Object, e As DataGridViewRowPrePaintEventArgs) Handles DataGridView1.RowPrePaint
       If e.IsLastVisibleRow Then Return

       Dim dgv As DataGridView = sender
       Dim row = dgv.Rows(e.RowIndex)
       Dim expDate As Date = row.Cells("ExpDate").Value

       Select Case expDate
           Case Is <= Now.Date
               row.DefaultCellStyle.BackColor = Color.LightPink

           Case Is < Now.Date.AddDays(7)
               row.DefaultCellStyle.BackColor = Color.Yellow

       End Select
   End Sub

اما الطلب الثاني فاجده بسيطا ، اي كانت طريقتك لجلب البيانات من قاعدة البيانات استخدمها في كل زر مع تغيير اسم الجدول

مثلا قم بتعريف دالة تجلب جميع بيانات الجدول باسم الجدول :

كود :
   Function GetDateFromTable(tableName As String) As DataTable
       Dim commandText As String = String.Format("Select * from {0}", tableName)
       Dim dt As New DataTable
       Using connection As New SqlClient.SqlConnection(connectionString)
           Using adapter As New SqlClient.SqlDataAdapter(commandText, connection)
               adapter.Fill(dt)
           End Using
       End Using
       Return dt
   End Function

الان في حد الضغط على كل زر استدعي الدالة مع اسناد قيمتها الى DataSource :

كود :
       DataGridView1.DataSource = GetDateFromTable("Products")

هكذا وفي الزر الاخر مثلا :

كود :
DataGridView1.DataSource = GetDateFromTable("Accounts")
الرد
تم الشكر بواسطة:
#3
(04-12-20, 12:26 PM)Anas Mahmoudnd Sub كتب : اما الطلب الثاني فاجده بسيطا ، اي كانت طريقتك لجلب البيانات من قاعدة البيانات استخدمها في كل زر مع تغيير اسم الجدول

مثلا قم بتعريف دالة تجلب جميع بيانات الجدول باسم الجدول :

كود :
   Function GetDateFromTable(tableName As String) As DataTable
       Dim commandText As String = String.Format("Select * from {0}", tableName)
       Dim dt As New DataTable
       Using connection As New SqlClient.SqlConnection(connectionString)
           Using adapter As New SqlClient.SqlDataAdapter(commandText, connection)
               adapter.Fill(dt)
           End Using
       End Using
       Return dt
   End Function
السلام عليكم 
هل في  connectionString اكتب جملة الاتصال  

(04-12-20, 12:26 PM)Anas Mahmoud كتب : تفضل الطلب الاول :

كود :
   Private Sub DataGridView1_RowPrePaint(sender As Object, e As DataGridViewRowPrePaintEventArgs) Handles DataGridView1.RowPrePaint
       If e.IsLastVisibleRow Then Return

       Dim dgv As DataGridView = sender
       Dim row = dgv.Rows(e.RowIndex)
       Dim expDate As Date = row.Cells("ExpDate").Value

       Select Case expDate
           Case Is <= Now.Date
               row.DefaultCellStyle.BackColor = Color.LightPink

           Case Is < Now.Date.AddDays(7)
               row.DefaultCellStyle.BackColor = Color.Yellow

       End Select
   End Sub
بالنسبة للكود هدا يظهر لي خطا في جملة Dim expDate As Date = row.Cells("ExpDate").Value

سؤال اخر
اريد ان اربط جدول واحد باكتر من button بحيث عن طريق الفئة مثلا الجدول يكون فيه عدة عدة اصنف كلما ضغطت على button يظهر لي بيانات ذلك الصنف المعين مثلا لدي منظومة قهوة عندما اريد ان اظغطت على button قهوة يظهر لي بيانات القهوة فقط و اذا اردت ان اضغطت على ساندوتشات يظهر لي بيانات ساندوتشات فقط و الى الخ
الرد
تم الشكر بواسطة:
#4
(04-12-20, 12:26 PM)Anas Mahmoud كتب : تفضل الطلب الاول :

كود :
   Private Sub DataGridView1_RowPrePaint(sender As Object, e As DataGridViewRowPrePaintEventArgs) Handles DataGridView1.RowPrePaint
       If e.IsLastVisibleRow Then Return

       Dim dgv As DataGridView = sender
       Dim row = dgv.Rows(e.RowIndex)
       Dim expDate As Date = row.Cells("ExpDate").Value

       Select Case expDate
           Case Is <= Now.Date
               row.DefaultCellStyle.BackColor = Color.LightPink

           Case Is < Now.Date.AddDays(7)
               row.DefaultCellStyle.BackColor = Color.Yellow

       End Select
   End Sub

ماذا اكتب بدل ExpDate لانه انا معرفه بالعربي في الداتا قريد فيو 
الرد
تم الشكر بواسطة:
#5
اجل عرف متغير عام للبرنامج connectionString وضع به نص الاتصال
بدلا من ExpDate اكتب اسم ال column او العمود في الداتا جريد فيو الذي يحتوي تاريخ الصلاحية
ان لم تعمل ارسل مثال نعدل عليه
الرد
تم الشكر بواسطة:
#6
(07-12-20, 04:54 PM)Anas Mahmoud كتب : اجل عرف متغير عام للبرنامج connectionString وضع به نص الاتصال
بدلا من ExpDate  اكتب اسم ال column او العمود في الداتا جريد فيو الذي يحتوي تاريخ الصلاحية
ان لم تعمل ارسل مثال نعدل عليه


الملفات المرفقة صورة/صور
   
الرد
تم الشكر بواسطة:
#7
لا اقصد اسم العمود في الداتا بيز اريد اسم العمود في الداتا جريد فيو لان هذا الكود يعمل على مستوى الداتا جريد فيو فقط ،

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

اذا كنت لا تعرف اسم العمود في الداتا جريد فيو يمكنك استخدام ترتيبها بين الاعمدة بدلا من الاسم هكذا مثلا اذا كانت في العمود الثالث :

كود :
      Dim expDate As Date = row.Cells(2).Value
الرد
تم الشكر بواسطة:
#8
(07-12-20, 05:16 PM)Anas Mahmoud كتب : لا اقصد اسم العمود في الداتا بيز اريد اسم العمود في الداتا جريد فيو لان هذا الكود يعمل على مستوى الداتا جريد فيو فقط ،

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

اذا كنت لا تعرف اسم العمود في الداتا جريد فيو يمكنك استخدام ترتيبها بين الاعمدة بدلا من الاسم هكذا مثلا اذا كانت في العمود الثالث :

كود :
      Dim expDate As Date = row.Cells(2).Value

(07-12-20, 05:16 PM)Anas Mahmoud كتب : لا اقصد اسم العمود في الداتا بيز اريد اسم العمود في الداتا جريد فيو لان هذا الكود يعمل على مستوى الداتا جريد فيو فقط ،

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

اذا كنت لا تعرف اسم العمود في الداتا جريد فيو يمكنك استخدام ترتيبها بين الاعمدة بدلا من الاسم هكذا مثلا اذا كانت في العمود الثالث :

كود :
      Dim expDate As Date = row.Cells(2).Value
هل يوجد خاصية معينة في داتا قريد فيو نكتب فيها ولا لا

(07-12-20, 05:16 PM)Anas Mahmoud كتب : لا اقصد اسم العمود في الداتا بيز اريد اسم العمود في الداتا جريد فيو لان هذا الكود يعمل على مستوى الداتا جريد فيو فقط ،

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

اذا كنت لا تعرف اسم العمود في الداتا جريد فيو يمكنك استخدام ترتيبها بين الاعمدة بدلا من الاسم هكذا مثلا اذا كانت في العمود الثالث :

كود :
      Dim expDate As Date = row.Cells(2).Value
هل صحيح الكود الي ف الصورة


الملفات المرفقة صورة/صور
       
الرد
تم الشكر بواسطة: Anas Mahmoud
#9

صحيح اخي الكريم
الرد
تم الشكر بواسطة:
#10
(07-12-20, 06:08 PM)Anas Mahmoud كتب :
صحيح اخي الكريم

شكرا غيرت مكان الكود و اشتغل
الرد
تم الشكر بواسطة:



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


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