症状
假设你在 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 立即刷新更改,而不是依赖 刷新间隔。 以下代码示例演示了此技术:conn.ConnectionString = "Data Source = c:\temp\SalesData.sdf; " conn.Open() Dim tx As SqlCeTransaction tx = conn.BeginTransaction(System.Data.IsolationLevel.ReadCommitted) com = conn.CreateCommand() com.Transaction = tx Dim a As Integer a = 101 While (a <= 1000) com.CommandText = "insert into Orders values (" + Convert.ToString(a) + ", 'best', 200)" com.ExecuteNonQuery() a = a + 1 End While tx.Commit(CommitMode.Immediate)
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。