#c# #datagridview
#c# #datagridview
Вопрос:
Я создаю одно приложение, где medicine_name — это автозаполняемый текст, основываясь на этом выборе, я хочу заполнить Expiry_Date, но всякий раз, когда я запускаю код, указанный мне индекс находился за пределами исключения массива, извлекаю код, который я написал в событии dataGridView1_CellEndEdit я не знаю, где я ошибаюсь, я вставляю свой код и снимки экранаприложения и структуры таблицы
private void dataGridView1_CellEndEdit_1(object sender, DataGridViewCellEventArgs e)
{
string connectionString = null;
connectionString = ConfigurationManager.ConnectionStrings["AccessConnectionString"].ConnectionString;
con.ConnectionString = connectionString;
string medicinename = Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells["Medicine_name"].Value);
DateTime Expiry_Date = Convert.ToDateTime (dataGridView1.Rows[e.RowIndex].Cells["Expiry_Date"].Value);
con.Open();
cmd = new OleDbCommand("select Expiry_Date from Medicine_Available_Detail where Medicine_Name='" medicinename "'", con);
OleDbDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Expiry_Date = Convert.ToDateTime (dr.GetValue(5));// exeception coming on this line
}
con.Close();
}
Ответ №1:
Я получил решение.
string connectionString = null;
connectionString = ConfigurationManager.ConnectionStrings["AccessConnectionString"].ConnectionString;
con.ConnectionString = connectionString;
string medicinename = Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells["Medicine_name"].Value);
DateTime Expiry_Date=new DateTime ();
con.Open();
cmd = new OleDbCommand("select Expiry_Date as Expiry_Date from Medicine_Available_Detail where Medicine_Name=@Medicine_Name",con);
cmd.Parameters.AddWithValue("@Medicine_Name",medicinename);
OleDbDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Expiry_Date = Convert.ToDateTime(dr["Expiry_Date"]);
}
dataGridView1.Rows[e.RowIndex].Cells["Expiry_Date"].Value = Expiry_Date;
con.Close();