我一直隨機收到此錯誤:連接當前狀態的連接錯誤消息
服務器無法處理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