con.Open()失败异常无法升级具有IsolationLevel Snapshot的事务

时间:2016-04-15 09:22:05

标签: c# sql-server

以下代码在应用程序"使用"是"低",插入正在发生。

一旦我使用得很高,我就会收到错误

  

无法宣传与IsolationLevel快照的交易

当我尝试打开连接时。 例外情况发生在" cn.Open()";

我尝试使用snapshot_isolation_state设置数据库为0或1, 或is_read_commited_snapshot_on有0或1 ....我甚至试图在C#代码上使用一个事务......但它没有任何区别。

我不关心这种情况下的交易,我只是想插入(没有更新)....

我该如何解决这个问题?

我的代码:

var connectionString = @"data source=XXXX\SQL2005;initial catalog=pw_LogDBStack;user id=XXXX;password=XXXX;";
string query = "INSERT INTO LogEntry (DateTime, CallerMethod, Stack, Query) VALUES ( @DateTime, @CallerMethod, @Stack, @Query)";
//SqlTransaction transaction = null;
using (SqlConnection cn = new SqlConnection(connectionString))
{
    cn.Open();
    //transaction = cn.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);
    //using (SqlCommand cmd = new SqlCommand(query, cn, transaction))
    using (SqlCommand cmd = new SqlCommand(query, cn))
    {
        cmd.Parameters.AddWithValue("@DateTime", DateTime.Now);
        cmd.Parameters.AddWithValue("@CallerMethod", callerMethod);
        cmd.Parameters.AddWithValue("@Stack", stackStr);
        cmd.Parameters.AddWithValue("@Query", c.Command.ToTraceString());
        cmd.ExecuteNonQuery();
    }
    //transaction.Commit();
    cn.Close();
}

1 个答案:

答案 0 :(得分:2)

我可以通过将属性添加到连接字符串Enlist=false;

来解决此问题

https://www.connectionstrings.com/all-sql-server-connection-string-keywords/