asp.net 连接出错解决方案
asp.net 连接出错public static SqlConnection conn new SqlConnection(ConfigurationManager.Connectio
asp.net 连接出错
public static SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connstr"].ToString());
public static int RunProcstr(string procName, params SqlParameter[] prams)
{
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
SqlCommand cmd = new SqlCommand(procName, conn);
cmd.CommandType = CommandType.StoredProcedure;
if (prams != null)
{
foreach (SqlParameter parameter in prams)
{
cmd.Parameters.Add(parameter);
}
}
if (cmd == null) return -1;
cmd.ExecuteNonQuery();
return 1;
}
catch (Exception ex)
{
throw new Exception(ex.Message, ex);
}
finally
{
conn.Close();
}
}
public static int RunProcdsstr(string procName, ref DataSet ds, params SqlParameter[] prams)
{
SqlDataAdapter da = null;
try
{
if (null == ds) ds = new DataSet();
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
da = new SqlDataAdapter(procName, conn);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
if (prams != null)
{
foreach (SqlParameter parameter in prams)
{
da.SelectCommand.Parameters.Add(parameter);
}
}
if (da == null) return -1;
da.Fill(ds);
return 1;
}
catch (Exception ex)
{
throw new Exception(ex.Message, ex);
}
finally
{
conn.Close();
da.Dispose();
}
}
帮我看看有什么问题,谢谢。
我写了上面的两个函数。在查询数据的时候调用。当点击查询时,如果数据量很大,系统还在查询。这是当我用另外一台电脑进行查询的时候就会报错。
大概的错误是这样的
已有打开的与此命令相关联的 DataReader,必须首先将它关闭。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: 已有打开的与此命令相关联的 DataReader,必须首先将它关闭。
源错误:
行 145: try
行 146: {
行 147: cmd.ExecuteNonQuery();
行 148: return 1;
行 149: }
这个是怎么回事啊,谢谢了
[解决办法]检查DataReader是否都关闭了。close(),有的地方是否遗漏了!!!
[解决办法]conn.Close();
da.Dispose();
把这2个写到catch里面
[解决办法]在就是优化sql语句 把*号之类的改成必须的字段
[解决办法]、
这样在异常的时候也可以关掉
[解决办法]da.Fill(ds);
cmd.ExecuteNonQuery(); 这两个后面