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 无效"异常(不一定每次都报),这是怎么回事,我写的这些方法有问题么
------解决方案--------------------
如果你那个执行正常是不是需要colse掉呢。因为你其中的某一次执行成功然后一直没有关闭。