使用
Microsoft SQL Server 2008(SP1)
尝试像这样创建交易:
OleDbConnection con;
OleDbTransaction transaction = null;
...
transaction = con.BeginTransaction(IsolationLevel.Snapshot);
得到错误:
System.Data.OleDb.OleDbException (0x8004D008): Neither the isolation level nor a strengthening of it is supported. at System.Data.OleDb.OleDbTransaction.ProcessResults(OleDbHResult hr) at System.Data.OleDb.OleDbTransaction.BeginInternal(ITransactionLocal
交易) 在System.Data.OleDb.OleDbConnectionInternal.BeginTransaction(IsolationLevel 的IsolationLevel) 在System.Data.OleDb.OleDbConnection.BeginTransaction(IsolationLevel 的IsolationLevel)
我确保在SQL Server Management Studio中运行以下命令:
ALTER DATABASE mydb SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE mydb SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE mydb SET READ_COMMITTED_SNAPSHOT ON;
ALTER DATABASE mydb SET MULTI_USER;
我缺少什么?
答案 0 :(得分:2)
用SqlClient替换OleDb(如评论中提到的Oded)。
或者,在开始事务之前执行此SQL命令:
SET TRANSACTION ISOLATION LEVEL SNAPSHOT;