проблема с прикрепленной базой данных sqlite - PullRequest
0 голосов
/ 24 ноября 2010

Я получаю сообщение об ошибке «нет такой таблицы», когда пытаюсь получить доступ к прикрепленному файлу БД, который находится в допустимом соединении SQLite со встроенной схемой.

После сохранения некоторых тестовых данных на «основном» соединении я прикрепляю файл и затем пытаюсь экспортировать данные из «основного» в файл для последующего использования. Вот код, используемый для прикрепления файла:

private static void _attachDatabase(SQLiteConnection conn, string dataFile) {
var cmd = new SQLiteCommand(conn)
                  {
                      CommandText = string.Format("ATTACH '{0}' AS {1}", dataFile, ATTACHED_DB)
                  };
_log.Debug(cmd.CommandText);
cmd.ExecuteNonQuery();
}

Выход команды журнала:

"...\bin\Debug\testData.db3' AS asdf" where testData.db3 is the file.

Когда я пытаюсь вставить файл, я получаю сообщение об ошибке в конце этого поста.

Кто-нибудь видит проблему по предоставленной информации? Кроме того, я должен быть в состоянии увидеть прикрепленную БД ("asdf") где-то в отладчике?

Приветствия
Berryl

Тест 'SQLiteTesting.Helpers.QueryTests.Director_if_Tim_Burton_query_should_return_one_movie' не выполнен: TestFixtureSetUp не выполнен в QueryTests

Ошибка TestFixture: System.Data.SQLite.SQLiteException: ошибка SQLite нет такой таблицы: asdf.ActorRole в System.Data.SQLite.SQLite3.Prepare (SQLiteConnection cnn, String strSql, SQLiteStatement previous, UInt32 timeoutMS, String & strRemain) в System.Data.SQLite.SQLiteCommand.BuildNextCommand () в System.Data.SQLite.SQLiteCommand.GetStatement (индекс Int32) в System.Data.SQLite.SQLiteDataReader.NextResult () в System.Data.SQLite.SQLiteDataReader..ctor (SQLiteCommand cmd, CommandBehavior ведут себя) в System.Data.SQLite.SQLiteCommand.ExecuteReader (поведение CommandBehavior) в System.Data.SQLite.SQLiteCommand.ExecuteNonQuery () в SQLiteTesting.Helpers.SQLiteLoader._copyTableData (SQLiteConnection conn, источник строки, назначение строки) в C: \ Users \ Lord & Master \ Documents \ Projects \ Data \ NHib projects \ Cookbook \ SQLiteTesting \ Helpers \ SQLiteLoader.cs: строка 68 в SQLiteTesting.Helpers.SQLiteLoader.ExportData (SQLiteConnection conn, String dataFile) в C: \ Users \ Lord & Master \ Documents \ Projects \ Data \ NHib проекты \ Cookbook \ SQLiteTesting \ Helpers \ SQLiteLoader.cs: строка 30 в SQLiteTesting.Helpers.QueryTests.OnFixtureSetUp () в C: \ Users \ Лорд и Мастер \ Документы \ Проекты \ Data \ NHib projects \ Cookbook \ SQLiteTesting \ Helpers \ QueryTests.cs: строка 25 в SQLiteTesting.Helpers.BaseFixture.FixtureSetUp () в C: \ Users \ Lord & Master \ Documents \ Projects \ Data \ NHib projects \ Cookbook \ SQLiteTesting \ Helpers \ BaseFixture.cs: строка 23 2010-11-23 18: 15: 36,835 DEBUG ATTACH '... \ bin \ Debug \ testData.db3' AS asd 2010-11-23 18: 18: 12,935 ВСТАВИТЬ ОТЛАДКУ В asdf.ActorRole SELECT * FROM ActorRole

Ответы [ 2 ]

2 голосов
/ 24 ноября 2010

Подсказка:

SQLite error no such table: asdf.ActorRole at

Если вы действительно определили таблицу, то вы перенесли главную (вероятно, только!) Ошибку sqlite.Если файл базы данных не завершится, он спокойно создаст для вас пустую базу данных.

Дважды проверьте путь к файлу и найдите новый пустой файл sq3, появляющийся в вашем каталоге.

0 голосов
/ 24 ноября 2010

Вам нужен оператор AS {1} ? Форсирование имени базы данных, похоже, сбивает его с толку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...