未找到System.Data.SQLite表

时间:2010-10-21 13:14:16

标签: c# winforms sqlite

我可以从像产品这样的表中插入/更新/删除罚款,但这段代码失败,说表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 :(得分:0)

也许您需要为表AppAttribute定义PK?

答案 1 :(得分:0)

这是一个非常奇怪的问题。我的连接字符串是这样的:

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

BUT !!! (来了)

在表单上我有一个 OpenFileDialog控件。现在对于一些生病的邪恶扭曲的原因,在打开对话框并选择文件后,当前路径被更改。如果您再建立新连接,则为“。”在连接字符串中指向其他地方。

所以我将连接字符串更改为:

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

天空立刻消失了......

PS我浪费了半天时间:(