SQLCEException未处理:内部错误:无法打开共享内存区域

时间:2010-06-10 18:14:30

标签: windows-mobile compact-framework sql-server-ce

我正在尝试执行TableAdapter.Fill(dataTable),但它失败并出现上述错误。这是... DataSet.Designer.cs中的代码

[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)]
public virtual int Fill(ZenwareDataSet.BatchPDADataTable dataTable) {

     this.Adapter.SelectCommand = this.CommandCollection[0];
     if ((this.ClearBeforeFill == true)) {
         dataTable.Clear();
     }
     int returnValue = this.Adapter.Fill(dataTable); //  <---Fails here.
     return returnValue;
}

这是生成的代码。也许有些东西我需要改变?我想知道我的应用程序是否有多个数据库连接。这可能是什么?感谢您提供的任何帮助。

  • Windows Mobile 6.1设备(Trimble Juno SB)
  • SQLServerCompact 3.5 Service Pack 2
  • Microsoft .NET CF 3.5

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

好的,我觉得自己很蠢。即使有了以前的答案,我仍然偶尔会看到上述问题。最后,我正在解决它,我只能说,“Duh”。我没有关闭我的读者,在本例中是SqlCeDataReader。一旦我关闭阅读器,一切都很好。难以弄清楚这个问题的原因是,一旦忘记关闭应用程序中的阅读器,下次您尝试进行数据库操作时就会发现问题。到那时你已经忘记了之前没有关闭过的读者。

我希望这有助于某人。我在其他任何地方找不到答案,所以如果它有帮助,请将此答案投票。