#c#
#c#
Вопрос:
У меня проблема в listview.В моем listview у меня есть пять столбцов (question_number, question_text, start_time, end_time, status). первые четыре столбца будут извлекать данные из базы данных. как только данные будут введены, я должен сравнить время начала и с текущим временем. как только время начала превысит текущее время, я должен обновить столбец статуса как истекший. в противном случае я должен сказать, что срок действия не истек.
Я прикрепил код, для чего я это сделал. Я не знаю, как обновить статус в столбце status.Пожалуйста, кто-нибудь мне поможет. заранее спасибо.
public void GetData()
{
try
{
myConnection = new SqlConnection(@"User ID=sa;Password=password123;Initial Catalog=dish;Persist Security Info=True;Data Source=ENMEDIA-CCDDFE5ENMEDIA");
//myConnection.Open();
//SqlDataReader dr = new SqlCommand("SELECT question_text,question_id FROM otvtbl_question ", myConnection).ExecuteReader();
// listView1.Columns.Clear();
listView1.Items.Clear();
myConnection.Open();
String MyString1 = string.Format("SELECT question_id,question_text,start_time,end_time FROM otvtbl_question");
SqlCommand cmd = myConnection.CreateCommand();
cmd.CommandText = MyString1;
dr = cmd.ExecuteReader();
//Adding The Column Name From The DataBase
for (int i = 0; i < dr.FieldCount; i )
{
ColumnHeader ch = new ColumnHeader();
ch.Text = dr.GetName(i);
//listView1.Columns.Add(ch);
}
ListViewItem itmX;
//Adding the Items To The Each Column
while (dr.Read())
{
itmX = new ListViewItem();
itmX.Text = dr.GetValue(0).ToString();
for (int i = 1; i < dr.FieldCount; i )
{
itmX.SubItems.Add(dr.GetValue(i).ToString());
}
listView1.Items.Add(itmX);
}
dr.Close();
myConnection.Close();
}
catch (Exception ex)
{
//Error Message While Fetching
MessageBox.Show("Error While Fetching the data From the DataBase" ex);
}
finally
{
//Closing The Connection
if (dr != null)
dr.Close();
if (myConnection.State == ConnectionState.Open)
myConnection.Close();
}
Комментарии:
1. Примите ответы на все ваши предыдущие заданные вопросы. итак, ваше согласие выше, чем сейчас.
2. я знаю, как сравнить start_time с текущим временем и обновить столбец status в соответствии. Я могу отображать другие столбцы, используя приведенный выше код, отличный от столбца status. можете ли вы мне помочь, пожалуйста
Ответ №1:
Что-то вроде этого?
while (dr.Read())
{
...
listView1.Items.Add(itmX);
if (dr.GetDateTime(2) > dr.GetDateTime(3))
{
itmX.SubItems.Add("Expired");
}
}
Комментарии:
1. сначала извините за поздний повтор. который вы опубликовали, почти в порядке. Но внутри условия if элемент, срок действия которого истек, должен быть добавлен в последний столбец, т. е. столбец статуса. добавит ли это значение expired в столбец status.
2. @bharathi — если вам нужно изменить данный столбец, просто используйте
itmX.SubItems[n].Text = "Expired"
;