我正在研究嵌套中继器。目前我的问题似乎是,当我执行我的 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();
}