gpt4 book ai didi

c# - 使用 SqlConnection 打开 DataReader 错误

转载 作者:行者123 更新时间:2023-11-30 20:09:19 25 4
gpt4 key购买 nike

在我的项目中,我有一个函数可以从 Sql2005 Server 中检索数据像这样,

SqlConnection sqlCnn = new SqlConnection("");
SqlCommand sqlCmd = new SqlCommand("Select user_id from users");
SqlDataReader sqlReader = null;

sqlCnn.Open();
sqlCmd.Connection = sqlCnn;
sqlReader = sqlCmd.ExecuteReader();

if (sqlReader.HasRows)
{
while (sqlReader.Read())
{
if(user_id == 1)
{
SqlCommand sqlCmd2 = new SqlCommand("Select mobile from tbl");
sqlCmd2.Connection = sqlCnn;
sqlCmd2.ExecuteReader();
}
}
}

执行sqlcmd2时出现如下错误。

There is already an open DataReader associated with this Command which must be closed first.

我不想在那里创建一个新的 sqlconnection。有什么办法解决这个问题?

最佳答案

要为每个连接打开两个阅读器,您需要启用 MARS(多个事件结果集)。您可以通过连接字符串执行此操作:

 Server=myServerAddress;Database=myDataBase;Trusted_Connection=True; MultipleActiveResultSets=true;

但是,不推荐这种方法。
我相信您可以通过一次查询检索到您需要的数据。

如果需要,您需要解释需要检索的内容,并提供有关单个查询的建议。
我假设您展示的代码只是一个示例,而不是真实代码,因为它没有多大意义。

看看“火星是好消息,还是有任何不利因素?”节here.

关于c# - 使用 SqlConnection 打开 DataReader 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6274086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com