如果达到Sql Server Compact Edition的限制会发生什么?

fla*_*ash 12 c# sql-server-ce

如果数据库达到SQL Server Compact Edition的4GB限制会发生什么?这有特殊的例外吗?

我可以安全地捕获此事件或异常,并且假设创建一个新数据库吗?

Dav*_*ter 8

我自己没有经历过这种情况,但看起来SqlCeException它将被抛出,并且NativeError包含的SqlCeError的属性将具有错误代码25104(SSCE_M_DATABASETOOBIG).

这是与db引擎错误相关的本机代码列表SqlCeError - 关于db文件太大的一个大约是下行的2/3.该列表适用于SQL CE 3.5; 你没有指定你使用的版本,但我猜它不会改变.

我不明白为什么你不能捕获这个异常,然后在你的catch部分创建一个新的数据库.

try {
  //do something
} catch (SqlCeException cexc){
  foeach (SqlCeError aError in cexc.Errors) {
    if (aError.NativeError == 25104) {  //this is the code for the TOO BIG error code
      //handle too big error -- maybe create a new database
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!