INSERT查询在SQL视图上运行,但不在Visual Basic中运行

时间:2019-04-28 21:26:36

标签: sql vb.net ms-access

我正在尝试将一个包含3列的with t(Id,Letter,Column1,Column2) as ( select 1,'A',100,200 union all select 1,'A',101,201 union all select 1,'A',102,203 union all select 2,'A',100,200 union all select 2,'A',101,201 union all select 2,'A',102,202 ), t2 as ( select *, row_number() over (partition by Id,Letter order by Column1) as rn from [t] ) select Id,Letter, max(case when rn = 1 then Column1 end ) as [Alias1], max(case when rn = 2 then Column1 end ) as [Alias2], max(case when rn = 3 then Column1 end ) as [Alias1-1], max(case when rn = 1 then Column2 end ) as [Alias2-0], max(case when rn = 2 then Column2 end ) as [Alias2-1], max(case when rn = 3 then Column2 end ) as [Alias2-2] from t2 group by Id,Letter 表插入:BillBillIDFoodID。没有主键,因为可以重复CountBillID

我运行以下查询:

FoodID

它在Microsoft Access(查询视图)中工作正常,但在我的Visual Basic项目中却不能。

我尝试了其他表,它可以插入,但是不能插入该表。我认为违反密钥有问题,但是异常yield

  

插入到语句中的语法错误

而且我不知道如何检查。请帮助我。

insert into BillInfo (BillID, FoodID, Count) 
values (3, 'SP05', 1)

我的Dim query = "insert into BillInfo(BillID, FoodID, Count) values(3, 'SP05', 1)" Dim result = DataProvider.Instance.executeNonQuery(query) 类基本上可以执行带有任何参数的任何查询。

我只是尝试使用硬代码作为示例

1 个答案:

答案 0 :(得分:3)

Count 是我能想到的任何数据库引擎中的保留字。
您应该尝试在数据库架构中避免此类词语。

无论如何,如果您想使用该单词,请将其放在方括号中

"Insert into BillInfo(BillID, FoodID, [Count]) values(3, 'SP05', 1)"