cはASP.Netで複数のリーダーを実行は..私は同じクエリが、1つの異なるパラメータとを書き込み、などのデータを結合しそう長い反復プロセスであるものをクリーンアップするために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();が削除されている場合は「もう一度読む前に閉じてください」のいずれかのエラーが発生し続けます。
この問題を解決する方法はありますか?ありがとうございました。
私はこれをやってみました、それはエラーが削除されますが、データは私のgridviewsにまで見られませんでした。インデックスやクエリに何らかの問題がありますか? –
興味深い...あなたがこの答えを見ているなら、https://stackoverflow.com/a/16381518/395675にOPは同じことを言います。 OPはこのブログのhttps://weblogs.asp.net/gurusarkar/binding-list-of-custom-class-to-gridview-or-listview-controlにリンクされ、GridViewの列を設定します –