SQLCEException не обработано: внутренняя ошибка: не удается открыть область общей памяти - PullRequest
2 голосов
/ 10 июня 2010

Я пытаюсь сделать 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 с пакетом обновления 2
  • Microsoft .NET CF 3.5

Ответы [ 2 ]

1 голос
/ 04 сентября 2010

ОК, я чувствую себя глупо.Даже с предыдущим ответом я все еще иногда видел вышеупомянутую проблему.Наконец, я обращаюсь к этому, и все, что я могу сказать, это «Дух».Я не закрывал своих читателей, в данном случае SqlCeDataReader.Как только я закрываю ридер, все в порядке.Что делает эту проблему трудной для понимания, так это то, что как только вы забудете закрыть программу чтения в своем приложении, проблема будет обнаружена в следующий раз при попытке выполнить операцию с базой данных.К тому времени вы забыли, что читатель не был закрыт ранее.

Надеюсь, это кому-нибудь поможет.Я не нашел ответа нигде, когда искал, поэтому проголосуйте, если он поможет.

1 голос
/ 25 июля 2010

Похоже, ответ на этот вопрос состоит в том, чтобы убедиться, что ничто не держит соединение открытым.Поскольку я унаследовал эту проблему, я не знал обо всем, что могло удерживать открытое соединение.Как только я централизовал соединение в одной функции, я не увидел ошибку.

...