为什么这段代码抛出无效操作异常?
private SqlCommand cmd; // initialized in the class constructor
public void End(string spSendEventNotificationEmail) {
try {
cmd.CommandText = spSendEventNotificationEmail;
cmd.Parameters.Clear();
cmd.Parameters.Add("@packetID", SqlDbType.Int).Value = _packetID;
cmd.Parameters.Add("@statusID", SqlDbType.Int).Value = _statusID;
cmd.Parameters.Add("@website", SqlDbType.NVarChar, 100).Value = Tools.NextStep;
cmd.Connection.Open();
cmd.ExecuteNonQuery();
} finally {
cmd.Connection.Close();
cmd.Parameters.Clear();
cmd.Dispose();
}
endCall = true;
}
最佳答案
您试图打开一个已经打开的连接,这会导致异常。
方案一(推荐):
检查您的代码,检查打开cmd.Connection
连接的所有部分,并确保它始终正确关闭。
解决方案 2(快速修复):
行前
cmd.Connection.Open();
添加以下检查/清理代码:
if (cmd.Connection.State == ConnectionState.Open)
{
cmd.Connection.Close();
}
关于c# - InvalidOperationException 连接未关闭。连接的当前状态是打开的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11053731/