ネストされたリピーターに取り組んでいます。私の問題は、現時点では、SQL コマンドを実行すると、データがデータ リーダーに返されないことです。まったく同じクエリ (コピーして貼り付け) を SQL Server に実行した場合でも。
私のnoteDrClientリーダーにはデータが含まれていませんが、テーブルに5つの列があることはわかっています。この時点で何をすべきか、またはデータ リーダーにデータが渡されない理由がわかりません。誰でも明らかな問題を見ることができますか?
SqlConnection con = new SqlConnection("Data Source=***;Initial Catalog=*;User ID=*;Password=*;Integrated Security=False;MultipleActiveResultSets=true;");
上記は私の接続文字列です。複数のアクティブな結果セットが true に設定されていることに注意してください。これを行ったのは、データ リーダーが閉じていても開いているというエラーが発生し続けたためです。
protected void rptList_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
RepeaterItem item = e.Item;
if ((item.ItemType == ListItemType.Item) ||
(item.ItemType == ListItemType.AlternatingItem))
{
System.Data.Common.DbDataRecord rd = (System.Data.Common.DbDataRecord)e.Item.DataItem;
Repeater nestedRepeater = e.Item.FindControl("NotesRepeater") as Repeater;
string FID = rd[0].ToString();
using (cmd2 = new SqlCommand("SELECT * FROM notes WHERE FID = 1356;", con)) ;
SqlDataReader noteDrClient = cmd2.ExecuteReader(); //no data is being filled to the data reader... even though this command pulls data in SQL Server Management Studio.
if (noteDrClient.Read()) { //bind the repeater if there is data to bind
nestedRepeater.DataSource = noteDrClient;
nestedRepeater.DataBind();
}
noteDrClient.Close();
}