【发布时间】:2017-10-29 13:13:24
【问题描述】:
我正在尝试在 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(); 已删除)。
这个问题有解决办法吗?谢谢你。
【问题讨论】: