症状
假设在 Microsoft SQL Server Compact 4.0 中将提交的事务刷新到磁盘之前,已以连接字符串的最大秒数指定刷新间隔。 在这种情况下,提交的事务可能需要比刷新间隔更长的时间才能刷新到磁盘,甚至可能不会刷新到磁盘。 此外,如果存在异常程序终止,则会发生数据丢失。
解决方法
解决此问题的修补程序包含在 SQL Server Compact 4.0 Service Pack 1 的按需修补程序更新包中。
有关如何获取适用于 SQL Server Compact 4.0 的此按需修补程序更新包的详细信息,请单击以下序列号以查看Microsoft知识库中的文章:
2960153 SQL Server Compact 4.0 Service Pack 1 的按需修补程序更新包
解决方法
若要解决此问题,请使用 CommitMode.Immediate 立即刷新更改,而不是依赖于刷新间隔。 以下示例代码演示了此方法:conn。ConnectionString = “Data Source = c:\temp\SalesData.sdf; ”
控制室。打开 ()
Dim tx As SqlCeTransaction
tx = conn。BeginTransaction (System.Data.IsolationLevel.ReadCommitted)
com = conn。CreateCommand ()
Com。Transaction = tx
将 A 作为整数进行调暗
a = 101
(a <= 1000)
Com。CommandText = “insert into Orders values (” + Convert.ToString (a) + “, 'best', 200) ”
Com。ExecuteNonQuery ()
a = a + 1
结束时间
Tx。提交 (CommitMode.Immediate)
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。