我想在C#中使用迭代来简化一个重复的过程,该过程涉及编写相同查询但具有一个不同参数和绑定数据等步骤。
但是,我在使用相同的读取器时遇到了问题。
目前这是我的代码:
private void bindData()
{
string cs = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
using (SqlConnection connection = new SqlConnection(cs))
{
connection.Open();
string[] days = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" };
for (int i = 0; i < 7; i++)
{
SqlCommand command = new SqlCommand("SELECT Name AS 'Class Name', FirstName AS 'Instructor First Name', LastName AS 'Instructor Last Name', LessonDuration AS 'Lesson Duration (hrs)', LessonTime AS 'Lesson Start' FROM Lesson, Class, Instructor WHERE Lesson.ClassID = Class.ClassID AND Lesson.InstructorID = Instructor.InstructorID AND LessonDay = '@Day';", connection);
command.Parameters.AddWithValue("@Day", days[i]);
using(SqlDataReader dr = command.ExecuteReader())
{
switch (days[i])
{
case "Monday":
GridView1.DataSource = dr;
DataBind();
break;
case "Tuesday":
GridView2.DataSource = dr;
DataBind();
break;
case "Wednesday":
GridView3.DataSource = dr;
DataBind();
break;
case "Thursday":
GridView4.DataSource = dr;
DataBind();
break;
case "Friday":
GridView5.DataSource = dr;
DataBind();
break;
case "Saturday":
GridView6.DataSource = dr;
DataBind();
break;
case "Sunday":
GridView7.DataSource = dr;
DataBind();
break;
}
dr.Close();
}
}
connection.Close();
}
}
如您所见,重点是将不同的查询绑定到代表一周不同天数的不同网格视图上。
我一直收到“无效的fieldcols数据读取器已关闭”或“请在再次阅读之前关闭”错误(如果删除dr.close();)。
这个问题有解决方案吗?谢谢。