C# listview для окрашивания строк, если column1 больше, чем column2
Я пытаюсь это сделать
получение данных из базы данных slq
Запас и критический предел
то, что я хочу, это ...если запас меньше критического предела
эти строки должны отображаться как оранжевые
и есть запас == 0
ряды показывают как малиновые
Что я уже пробовал:
listView2.Items.Clear(); listView2.Columns.Clear(); listView2.Columns.Add("ID", 100); listView2.Columns.Add("Description", 150); listView2.Columns.Add("Stock", 150); listView2.Columns.Add("CriticalLimit", 150); string sql2 = @"Select * from tblProduct"; cm = new SqlCommand(sql2, cn); dr = cm.ExecuteReader(); while (dr.Read() == true) { if ((Convert.ToInt64(dr[9]) <= Convert.ToInt32(dr[8].ToString()))&& Convert.ToInt64(dr[9]) >= 1) { lst = listView2.Items.Add(dr[0].ToString()); lst.SubItems.Add(dr[1].ToString()); lst.SubItems.Add(dr[9].ToString()); lst.SubItems.Add(dr[8].ToString()); if (Convert.ToInt32(dr[9].ToString()) == 0) { lst.ForeColor = Color.Crimson; } else if (Convert.ToInt32(dr[9].ToString()) < Convert.ToInt32(dr[8].ToString())) { lst.ForeColor = Color.Orange; } } } dr.Close();
Richard MacCutchan
Почему вы преобразуете значения в строки, чтобы преобразовать их обратно в числа?
Member 13894223
мне нужно проверить все элементы в двух столбцах, если один больше другого
если столбец 1(запас) меньше столбца два(критический предел), то все строки, которые меньше, будут отображаться как цветной текст
я все еще очень новичок в этом деле я учусь по ходу дела так что могу совершать глупые ошибки
[no name]
с какой именно проблемой вы столкнулись?
Member 13894223
в промежутке между всем этим вопрос волшебным образом разрешился сам собой
но это дало ошибку, что строка недействительна было что-то делать, когда я добавил код, чтобы проверить, если значение в запасе, меньше критического предела, чтобы отобразить эту строку как оранжевый