【发布时间】:2019-07-25 17:32:57
【问题描述】:
我收到一个错误:
ExecuteNonQuery 需要一个开放且可用的连接。
连接的当前状态为打开。
我使用了con.Open();,但我遇到了同样的错误。
请帮助我。
static string connectionString = ConfigurationManager.AppSettings["MessageDB"].ToString();
static SqlConnection _sqlconn = new SqlConnection(connectionString);
public static void Message(MessageLog messageLog)
{
try
{
_sqlconn = new SqlConnection(connectionString);
_sqlconn.Open();
SqlCommand cmd = _sqlconn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "INSERT_MESSAGE";
SqlParameter APPID = cmd.CreateParameter();
APPID.ParameterName = @"@MessageID";
APPID.DbType = DbType.Int16;
APPID.Direction = ParameterDirection.Input;
APPID.Value = messageLog.MessageID;
cmd.Parameters.Add(MessageID);
cmd.ExecuteNonQuery();
_sqlconn.Close();
}
catch (Exception ex)
{
if (_sqlconn.State == ConnectionState.Open)
{
_sqlconn.Close();
}
ExceptionLogger.LogException(ex);
}
}
【问题讨论】:
-
请正确格式化您的问题
-
恕我直言,将
Command和SqlConnection包装在Using语句中;那么你的对象将在处理完它们后被丢弃......
标签: c# sql-server connection