السلام عليكم
عندي سؤالين..الاول : كيف اغير لون صف كامل في داتا جريد فيو مثلا ..اذا قاربت تاريخ صلاحية الصنف على النهاية الى اللون الاصفر و اذا انتهت الى اللون الاحمر
الثاني : كيف استطيع ان اربط button 3 مختلفة ب داتا جريد فيو واحده لي 3 جداول مختلفة من sql مثلا..لدي database لمقهى بها 3 تابلات كل تابل به صنف معين اريد ان اعرض 3 تابلات في داتا جريد فيو واحدة عن طريق button يعني كلما اخترت button معين يعرض لي البيانات التي تتبع ذالك button ...
تفضل الطلب الاول :
كود :
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")
(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 قهوة يظهر لي بيانات القهوة فقط و اذا اردت ان اضغطت على ساندوتشات يظهر لي بيانات ساندوتشات فقط و الى الخ
اجل عرف متغير عام للبرنامج connectionString وضع به نص الاتصال
بدلا من ExpDate اكتب اسم ال column او العمود في الداتا جريد فيو الذي يحتوي تاريخ الصلاحية
ان لم تعمل ارسل مثال نعدل عليه
لا اقصد اسم العمود في الداتا بيز اريد اسم العمود في الداتا جريد فيو لان هذا الكود يعمل على مستوى الداتا جريد فيو فقط ،
ببساطة الكود يختبر محتوى الصف في الجريد فيو ان وجد صلاحيته انتهت يقوم بتلوينه
اذا كنت لا تعرف اسم العمود في الداتا جريد فيو يمكنك استخدام ترتيبها بين الاعمدة بدلا من الاسم هكذا مثلا اذا كانت في العمود الثالث :
كود :
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
هل يوجد خاصية معينة في داتا قريد فيو نكتب فيها ولا لا
(07-12-20, 05:16 PM)Anas Mahmoud كتب : [ -> ]لا اقصد اسم العمود في الداتا بيز اريد اسم العمود في الداتا جريد فيو لان هذا الكود يعمل على مستوى الداتا جريد فيو فقط ،
ببساطة الكود يختبر محتوى الصف في الجريد فيو ان وجد صلاحيته انتهت يقوم بتلوينه
اذا كنت لا تعرف اسم العمود في الداتا جريد فيو يمكنك استخدام ترتيبها بين الاعمدة بدلا من الاسم هكذا مثلا اذا كانت في العمود الثالث :
كود :
Dim expDate As Date = row.Cells(2).Value
هل صحيح الكود الي ف الصورة
(07-12-20, 06:08 PM)Anas Mahmoud كتب : [ -> ]
صحيح اخي الكريم
شكرا غيرت مكان الكود و اشتغل