【发布时间】:2011-09-10 13:44:06
【问题描述】:
在我的项目中,我有一个从 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 时出现以下错误。
已经有一个打开的 DataReader 与此命令相关联 必须先关闭。
我不想在那里创建一个新的 sqlconnection。有什么办法可以解决 这个问题?
【问题讨论】:
-
什么数据结构会让你无法一口气执行?你想返回什么? users表和tbl之间的关系是什么?你为什么要检查 user_id == 1?一次性完成的任务越多,开销就越少。
-
这只是示例代码,我们必须在执行第一个命令后检查和计算,并根据该结果执行另一个命令。谢谢
标签: c# .net sql sql-server sql-server-2005