Ошибка SQLite нет такой таблицы, при использовании его с DBLinq в C # - PullRequest
0 голосов
/ 20 апреля 2011

Я создал базу данных, используя администратор SQLite. Он содержит 3 таблицы и база данных находится в папке с документами. Также я создал класс отображения для Linq, используя DBMetal.

В приложении ниже указан код для подключения к базе данных и вставки новых данных в SongMasterLocal.

        static SQLiteConnection con = new SQLiteConnection(@"data source=C:\\Users\\Kam\\SongDb.s3db");

        SongDBML.SongDBMLDataContext dCon=null;

                      try
                      {

                         dCon = new SongDBML.SongDBMLDataContext(con);
                         SongDBML.SongMasterLocal tempSongMaster = new SongDBML.SongMasterLocal();
                          tempSongMaster.SongFilePath = this.FilePath;
                          tempSongMaster.Cleaned = true;
                         dCon.Connection.Open();
                         dCon.Connection.BeginTransaction();

                         dCon.GetTable<SongMasterLocal>().InsertOnSubmit(tempSongMaster);

                      //dCon.SongMasterLocal.InsertOnSubmit(tempSongMaster);
                      dCon.GetTable<NewTags>().InsertOnSubmit(tempNewTags);
                      dCon.SubmitChanges();
return true;


              }

              catch (Exception e)
              {
                  dCon.Connection.Close();
                  //throw e;
              }

Когда я выполняю код, я получаю ошибку SQLite: такой таблицы не существует SongMasterLocal

Если я попытаюсь создать новую таблицу с помощью команды выполнения SQLite, она выдаст «Ошибка таблицы уже существует».

Может кто-нибудь помочь мне решить проблему.

И если вам нужно больше кода или трассировки отладки, пожалуйста, спросите, и я опубликую их.

1 Ответ

0 голосов
/ 27 апреля 2011

Исправлена ​​проблема. Проблема была в классе отображения (файл DBML), созданном DBMetal, который имеет имена таблиц, как и в полном пространстве имен, которое не было распознано SQLite. Теперь это работает как чудо. -

...