我一直随机收到此错误:连接当前状态的连接错误消息
服务器无法处理System.Web.Services.Protocols.SoapException:服务器无法处理请求。 ---> System.InvalidOperationException:连接未关闭。连接的当前状态正在连接。
它complaning有关的代码如下:
DataSet ds = new DataSet();
cn = new SqlConnection(GetDBConnectionString());
using (cn)
{
try
{
SqlCommand cmd = new SqlCommand("uspGetNavigationItems", cn);
cmd.CommandType = CommandType.StoredProcedure;
cn.Open();
SqlDataAdapter adp = new SqlDataAdapter(cmd);
adp.Fill(ds, "NavItems");
}
catch (Exception ex)
{
ds = null;
throw ex;
}
finally
{
if (cn.State != ConnectionState.Closed)
{
cn.Close();
}
}
}
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
return ds.Tables[0];
}
else
{
return null;
}
}
else
{
return null;
}
我不明白问题出在哪里,为什么它说的连接连接,当我有一个最后清理。是因为我正在使用Finally来关闭它,并且使用声明,它也应该关闭它?这种情况也会随机发生,不会总是这样,这就是为什么我不确定发生了什么。
谢谢。
沿着这些线路:命令对象也应该是在一个using语句。 – NotMe 2012-03-28 14:29:02
@ChrisLively:据此编辑我的答案。 – 2012-03-28 14:40:51
@TimSchmelter谢谢你。 – Paritosh 2012-03-29 13:31:21