Таблица System.Data.SQLite не найдена - PullRequest
0 голосов
/ 21 октября 2010

Я могу вставить / обновить / удалить штрафа из таблиц, таких как product и т. Д., Но этот код не может сказать, что таблица AppAttribute не существует. Как я уже сказал, другие таблицы работают нормально ...

    ExecuteNonQuery(BuildCommand(string.Format("DELETE FROM AppAttribute WHERE ProjectId={0};", ID)));
    ExecuteNonQuery(BuildCommand(string.Format("DELETE FROM CSVField WHERE ProjectId={0};", ID)));
    ExecuteNonQuery(BuildCommand(string.Format("DELETE FROM ExtraAttribute WHERE ProjectId={0};", ID)));

В моей базе данных есть следующая схема:

BEGIN TRANSACTION;
CREATE TABLE AppAttribute (ProjectID NUMERIC, Name TEXT, Value TEXT);
CREATE TABLE AppData (PKey INTEGER PRIMARY KEY, KeyNo TEXT, FullName TEXT, EmailAddress TEXT, PostalCode TEXT, MagePassword TEXT, MageUserName TEXT, DomainName TEXT, ProductSheetTemplate TEXT);
INSERT INTO "AppData" VALUES(1,'','','','','MageCatPrinter','MageCatPrinter','http://www.ecosmartlight.com','Z:\dennisdecoene On My Mac\Documents\ML Solutions\EcoSmartLight\Productfiches\Voorbeeld van site\Sjabloon.html');
CREATE TABLE CSVField (ProjectID NUMERIC, Name TEXT, ExampleData TEXT);
CREATE TABLE ExtraAttribute (ProjectID NUMERIC, Name TEXT, PrintInTable NUMERIC);
CREATE TABLE Product (SKU TEXT, ProjectId NUMERIC, Name TEXT, AttributeSet INTEGER);
CREATE TABLE ProductAttribute (SKU TEXT, ProjectId NUMERIC, Key TEXT, Value TEXT);
CREATE TABLE Project (PKey INTEGER PRIMARY KEY, Name TEXT);
CREATE TABLE Template (Id INTEGER PRIMARY KEY, ProjectId NUMERIC, Type NUMERIC, Name TEXT, TemplateText TEXT);
COMMIT;

Я также уверен, что это схема, с которой работает приложение, потому что именно мое приложение создало дамп.

Ответы [ 2 ]

0 голосов
/ 21 октября 2010

Это была очень странная проблема. Моя строка подключения была такой:

string _connectionString = @"Data Source=./Foo.db";

НО !!! (Вот оно)

В форме у меня есть элемент управления OpenFileDialog . Теперь по какой-то нездоровой причине, после открытия диалога и выбора файла, текущий путь меняется . Если вы затем создадите новое соединение, то "." в строке подключения указывает куда-то еще.

Поэтому я изменил строку подключения на:

string _connectionString = @"Data Source=" + Application.StartupPath + "\\Foo.db";

Небо тут же прояснилось ...

PS Я потратил полдня на это: (

0 голосов
/ 21 октября 2010

Может быть, вам нужно определить PK для таблицы AppAttribute?

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