以下代码在应用程序"使用"是"低",插入正在发生。
一旦我使用得很高,我就会收到错误
无法宣传与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();
}
答案 0 :(得分:2)
我可以通过将属性添加到连接字符串Enlist=false;
https://www.connectionstrings.com/all-sql-server-connection-string-keywords/