如何将 SqlDataReader 的值存储在数组中?
How to store value of SqlDataReader in an array?
while循环中的course_id有多个值。我想在 GridView 中显示所有值,但只显示最后一个值。我怎样才能做到这一点?我必须将 course_id 存储在数组中吗?
int course_id=0;
string query_select_course = "SELECT course_id FROM course_program where program_id = '" + program_id + "' ";
SqlDataReader dr_course = DataAccess.selectDataReader(query_select_course);
while (dr_course.Read())
{
course_id = (int)dr_course.GetValue(0); // this course_id should have multiple values.
}
dr_course.Close();
string query_select_course_name = "SELECT course_title FROM courses where course_id = '" + course_id + "' ";
DataTable dt = DataAccess.selectData(query_select_course_name);
course_dataGridView.DataSource = dt;
由于您迭代了 reader,因此您的 course_id
将成为 last 行的单元格值。
我建议你创建一个 List<int>
并在你的 while
语句中添加那些 course_id
,使用 string.Join
生成带有逗号分隔符的字符串,这些值如 1, 2, 3
,在查询中使用 IN
子句代替 =
;
course_id IN (1, 2, 3)
创建一个 List<int>
并在其中添加值。
List<int> course=new List<int>();
while (dr_course.Read())
{
course.Add((int)dr_course.GetValue(0));
}
while循环中的course_id有多个值。我想在 GridView 中显示所有值,但只显示最后一个值。我怎样才能做到这一点?我必须将 course_id 存储在数组中吗?
int course_id=0;
string query_select_course = "SELECT course_id FROM course_program where program_id = '" + program_id + "' ";
SqlDataReader dr_course = DataAccess.selectDataReader(query_select_course);
while (dr_course.Read())
{
course_id = (int)dr_course.GetValue(0); // this course_id should have multiple values.
}
dr_course.Close();
string query_select_course_name = "SELECT course_title FROM courses where course_id = '" + course_id + "' ";
DataTable dt = DataAccess.selectData(query_select_course_name);
course_dataGridView.DataSource = dt;
由于您迭代了 reader,因此您的 course_id
将成为 last 行的单元格值。
我建议你创建一个 List<int>
并在你的 while
语句中添加那些 course_id
,使用 string.Join
生成带有逗号分隔符的字符串,这些值如 1, 2, 3
,在查询中使用 IN
子句代替 =
;
course_id IN (1, 2, 3)
创建一个 List<int>
并在其中添加值。
List<int> course=new List<int>();
while (dr_course.Read())
{
course.Add((int)dr_course.GetValue(0));
}