C# 阅读器关闭时尝试调用 MetaData 无效

chenrong980 2013-05-17 09:12:16
public DataSet RunProcReturn(string procName)
{
DataSet ds = new DataSet();
try
{
SqlDataAdapter dap = CreateDataAdaper(procName, null);
dap.Fill(ds, "tbName");
return ds;
}
catch
{
Close();
return ds;

}

}
private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams)
{
Open();
SqlDataAdapter dap = new SqlDataAdapter(procName, strConn);
dap.SelectCommand.CommandTimeout = 180;
dap.SelectCommand.CommandType = CommandType.Text; //执行类型:命令文本
if (prams != null)
{
foreach (SqlParameter parameter in prams)
dap.SelectCommand.Parameters.Add(parameter);
}
return dap;
}

public void Open()
{
// 打开数据库连接
Close();
if (strConn == null)
{
strConn = new SqlConnection(connStr);
}
if (strConn.State == System.Data.ConnectionState.Closed)
strConn.Open();

}

public void Close()
{
if (strConn != null)
{
if (strConn.State == ConnectionState.Open)
{
strConn.Close();
strConn.Dispose();
strConn = null;
}

}
}
红色字体部分总是报" 阅读器关闭时尝试调用 MetaData 无效"异常(不一定每次都报),这是怎么回事,我写的这些方法有问题么
...全文
680 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenrong980 2013-05-28
  • 打赏
  • 举报
回复
嗯,嗯,已经弄好了!谢谢哦!
reciment 2013-05-27
  • 打赏
  • 举报
回复
如果你那个执行正常是不是需要colse掉呢。因为你其中的某一次执行成功然后一直没有关闭。
chenrong980 2013-05-17
  • 打赏
  • 举报
回复
怎么没人回答呢?有时候还出现"ExecuteReader 要求已打开且可用的连接。连接的当前状态为正在连接"这个异常

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧