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;
答案 0 :(得分:4)
制作List<int>
并在其中添加值。
List<int> course=new List<int>();
while (dr_course.Read())
{
course.Add((int)dr_course.GetValue(0));
}
答案 1 :(得分:1)
由于您对阅读器进行了迭代,因此course_id
将是 last 行的单元格值。
我建议您创建List<int>
并在course_id
语句中添加while
,使用string.Join
生成逗号分隔符字符串,其中包含{{1}在您的查询中使用1, 2, 3
子句代替IN
,例如;
=