如何在SQLite中将事务隔离级别设置为ReadUncommitted?

时间:2011-03-20 20:15:05

标签: c# sqlite isolation-level read-uncommitted

根据post的回答,它说:

  

除非您启用了共享缓存且两个连接来自同一个线程,否则您是否知道ReadUncommitted将恢复为序列化隔离?

在C#中工作,然后继续按如下方式定义DLL导入:

[DllImport("System.Data.SQLite.dll", CallingConvention=CallingConvention.Cdecl)]
public static extern int sqlite3_enable_shared_cache(int enable);

我调用此函数来启用缓存,并在调用时获得成功的结果状态0。尽管如此,在执行以下行并尝试将隔离级别设置为ReadUncommitted时,我仍然会获得异常“isolationlevel”。

string connectionString = @"data source=d:\db\test.db3;datetimeformat=Ticks";
SQLiteConnection conn = new SQLiteConnection(connectionString);
conn.Open();
IDbTransaction tran = conn.BeginTransaction(IsolationLevel.ReadUncommitted);

此问题与我发布的另一个问题有关here

如何在SQLite中提取具有ReadUncommitted隔离级别的查询?

1 个答案:

答案 0 :(得分:2)

要完成未提交的读取,请参阅以下问题并回答:

How perform SQLite query with a data reader without locking database?