使用特定列时,Sqlite查询不起作用

时间:2018-10-24 21:08:29

标签: vb.net sqlite

我有桌子

  CREATE TABLE IF NOT EXISTS [products](
    [id] INTEGER PRIMARY KEY,
    [productCategoryId] INTEGER NOT NULL,
    [productMeasurementId] INTEGER NOT NULL,
    [eanCode] TEXT NOT NULL DEFAULT '',
    [reference] TEXT UNIQUE DEFAULT NULL,
    [shortDescription] TEXT NOT NULL DEFAULT '',
    [longDescription] TEXT NOT NULL DEFAULT '',
    [buyPrice] DECIMAL NOT NULL DEFAULT 0,
    [sellPrice1] DECIMAL NOT NULL DEFAULT 0,
    [sellPrice2] DECIMAL NOT NULL DEFAULT 0,
    [sellPrice3] DECIMAL NOT NULL DEFAULT 0,
    [taxPercentage] DECIMAL NOT NULL DEFAULT 0,
    [sold] INTEGER NOT NULL DEFAULT 0,
    [inStock] INTEGER NOT NULL DEFAULT 0,
    [AmountToOrder] INTEGER NOT NULL DEFAULT 0,
    [OrderWhenLessThan] INTEGER NOT NULL DEFAULT 0,
    [weigth] DECIMAL NOT NULL DEFAULT 0,
    [set] INTEGER NOT NULL DEFAULT 0,
    FOREIGN KEY(productCategoryId) REFERENCES productCategories(id),
    FOREIGN KEY(productMeasurementId) REFERENCES productMeasurements(id)

并且想要进行简单的插入,但是,我尝试涉及列“ set”的任何插入都将失败(sql错误1,这是一种告诉您“我对这个错误我了解得最多”的sqlite方法) ,说“设定”附近有错误) 查询是

sqlQuery = "INSERT INTO [products] (productMeasurementId,shortDescription,longDescription,taxPercentage,buyPrice,sellPrice1,sellPrice2,sellPrice3,inStock,sold,OrderWhenLessThan,AmountToOrder,weigth,productCategoryId,eanCode,set,reference) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"

所有参数都是正确的,并且如果我运行相同的查询时没有“设置”(当然要删除其中一个?),则它运行也没有任何问题,我将设置一个简单的0作为参数,我尝试了也是1(我想设置为布尔值,但sqlite不支持它,所以它是整数)

1 个答案:

答案 0 :(得分:2)

set是保留关键字。使用反引号转义该名称。

insert into ... `set` ...