-
זה הקוד שממלא את הטבלה
SqlConnection con = new SqlConnection('SQL login information')
con.Open(); SqlCommand cmd = con.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = "SELECT ID as 'מזהה', CustomerName as 'שם לקוח',PhoneNumber as 'טלפון',active as 'פעיל' from Customertable"; cmd.ExecuteNonQuery(); DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(dt); dataGridView1.DataSource = dt; con.Close();
-
@mekev
תראה אם זה עוזר לךusing (var con = new SqlConnection("XYZ")) { con.Open(); SqlCommand cmd = con.CreateCommand(); cmd.CommandText = "SELECT TOP 200 * FROM TRUMOT"; DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(dt); dataGridView1.DataSource = dt; } dataGridView1.DataBindingComplete += (s, e) => { foreach (DataGridViewRow item in dataGridView1.Rows) if (item.Cells[2].Value?.ToString() == "012") item.DefaultCellStyle.BackColor = Color.Yellow; };
-
@dovid
תראה אם זה עוזר לךעזרת לי מאוד!!
היות הפורום הינו פומבי
ע"מ להעניק עזרה וסיוע לא רק ברמה הפרטנית
אלא בעיקר שמנ-דהו בעתיד שיתקל בבעיה דומה יוכל לחפש ולמצוא בקלותאעדכן ש:
התחביר dataGridView1.DataBindingComplete += (s, e) =>
יצר שגיאה (Error CS0136)ולכן פשוט שמתי את הקוד המצ"ב במאפיין RowPrePaint
וזה עובד מעולהforeach (DataGridViewRow item in dataGridView1.Rows) if (item.Cells["פעיל"].Value is false) { item.DefaultCellStyle.BackColor = Color.Yellow; } else { item.DefaultCellStyle.BackColor = Color.White; }
-
@mekev אימאלה, הפתרון שלך לא טוב, הוא עובר על כל השורות, כמספר השורות, כלומר אם יש לך 1000 שורות הוא עובר על כל אחת אלף פעם (האירוע RowPrePaint קורה פר שורה, כל פעם שהיא מוצגת על המסך, ובתוך האירוע עשית מעבר על כלל השורות).
השגיאה שהבאת היא התנגשות בין שני משתנים בעלי אותו שם, וזה בגלל שכנראה יש e מוכרז כבר קודם, נסה את הקוד הבא:using (var con = new SqlConnection("XYZ")) { con.Open(); SqlCommand cmd = con.CreateCommand(); cmd.CommandText = "SELECT TOP 200 * FROM TRUMOT"; DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(dt); dataGridView1.DataSource = dt; } dataGridView1.DataBindingComplete += (s2, e2) => { foreach (DataGridViewRow item in dataGridView1.Rows) if (item.Cells["פעיל"]?.Value == false) item.DefaultCellStyle.BackColor = Color.Yellow; };
-