我使用C#和System.Data.SQLite库,我得到了一个外键不匹配错误。 我创建了三个表:
Com.CommandText = @"create table Projekt ([ProjectID] Integer NOT NULL Primary key, [Projektname] varchar(360),[ProjektEd] DATETIME, [ProjektLSD] Datetime, [ProjektLD] Datetime);";
Com.ExecuteNonQuery();
Com.CommandText= "create table Template ([TemplateID] Integer NOT NULL Primary key,[Templatename] varchar(360),[TemplateEd] Datetime, [TemplateLSD] Datetime,[TemplateLD] Datetime);";
Com.ExecuteNonQuery();
Com.CommandText = "create table Messung ([MessungID] Integer Not Null Primary Key, [Messungname] varchar(360), [MessungEd] Datetime, [MessungLSD] Datetime, [MessungLD] Datetime, [ProjektID] Integer, [TemplateID] Integer,FOREIGN KEY(ProjektID) REFERENCES Projekt(ProjektID), Foreign Key (TemplateID) References Template(TemplateID)); ";
Com.ExecuteNonQuery();
之后我插入 这创造了我在" Projekt"表:
Insert into projekt (Projektname, ProjektEd,ProjektLSD, ProjektLD) values ('Messung_Win_3', '2016-06-16 14:47:00','2016-06-27 14:47:00', '2016-07-14 11:12:00');
虽然这会在表格中创建我的第四个条目(我在此之前有另外三个插入)"模板":
Insert into Template (Templatename, TemplateEd, TemplateLSD, TemplateLD) values('Messung_Win_3', '2016-05-19 15:13:00','2016-06-27 14:47:00', '2016-07-14 11:12:00');
现在问题如下: 为什么此命令有外键不匹配错误?
Com.CommandText = "Insert into Messung (Messungname, MessungEd, ProjektID, TemplateID) values ('Board2ROI3','2016-06-16 14:47:00',1,4);";
我通过SQLFiddle用SQLite(SQL.js)测试它。链接在这里:http://sqlfiddle.com/
它工作得很好但在C#中却出现了这个错误。
我希望你能帮助我
答案 0 :(得分:0)
你拼写你的FK projectId错误
Com.CommandText = @"create table Projekt ([**ProjectID**] Integer NOT NULL Primary key, [Projektname] varchar(360),[ProjektEd] DATETIME, [ProjektLSD] Datetime, [ProjektLD] Datetime);";
Com.CommandText = "create table Messung ([MessungID] Integer Not Null Primary Key, [Messungname] varchar(360), [MessungEd] Datetime, [MessungLSD] Datetime, [MessungLD] Datetime, [ProjektID] Integer, [TemplateID] Integer,FOREIGN KEY(ProjektID) REFERENCES Projekt(**ProjektID**), Foreign Key (TemplateID) References Template(TemplateID)); ";