【问题标题】:The INSERT query run on SQL view but not in visual basicINSERT 查询在 SQL 视图上运行,但不在 Visual Basic 中
【发布时间】:2019-04-28 21:26:36
【问题描述】:

我正在尝试插入具有 3 列的 Bill 表:BillIDFoodIDCount。没有主键,因为BillIDFoodID 可以重复。

我运行这个查询:

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

它在 Microsoft Access(查询视图)中运行良好,但在我的 Visual Basic 项目中却不行。

我尝试了不同的表,它可以插入好的,但不是这个表。我认为违规键有问题,但异常产生

insert into 语句中的语法错误

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

Dim query = "insert into BillInfo(BillID, FoodID, Count) values(3, 'SP05', 1)"
Dim result = DataProvider.Instance.executeNonQuery(query)

我的DataProvider 类基本上可以执行任何参数的任何查询。

我只是以硬编码为例

【问题讨论】:

  • 你能告诉我们每列的表格数据类型吗?您还确定您与数据库的连接字符串是正确的吗?您可以在 VB.Net 中使用与此插入相同的连接字符串运行任何查询吗?
  • connection.Open() Dim command As New OleDbCommand(queryString, connection) command.ExecuteNonQuery() 工作正常,只要您不向我们展示您的课程,就很难提供帮助
  • 很抱歉我没有详细展示它们。然而,史蒂夫已经解决了我的问题。非常感谢你们!

标签: sql vb.net ms-access


【解决方案1】:

Count 是我能想到的任何数据库引擎中的保留字。
你应该尽量避免在你的数据库模式中使用这样的词。

不管怎样,如果你想用那个词,就把它放在方括号里

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

【讨论】:

  • 是的,我将 Count 字段更改为 Amount 字段并且它有效,非常感谢。不过很难说。
猜你喜欢
  • 2017-12-02
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 2015-05-29
  • 2021-11-02
  • 1970-01-01
  • 2014-07-15
相关资源
最近更新 更多