有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java安卓:在SQLite中没有这样的列

我是一个全新的开发人员,我在安卓中遇到了以下错误:

08-24 23:55:15.744: E/AndroidRuntime(29803): Caused by: 安卓.database.sqlite.SQLiteException: no such column: customerName (code 1): , while compiling: INSERT INTO nncdjiftable (customerName, timeShift, date01, vendorGameThemePT, managerSignature, managerDate, jackpotAmount, lessTaxesWithheld, cashierSignature, taxRate, slotAttendantSignature, totalAmountPaid, slotSupervisorMODSignature, customerSignature, date03) VALUES (customerName, timeShift, date01, vendorGameThemePT, managerSignature, managerDate, jackpotAmount, lessTaxesWithheld, cashierSignature, taxRate, slotAttendantSignature, totalAmountPaid, slotSupervisorMODSignature, customerSignature, date03)

这是我的代码:

nncdjifdb.execSQL("CREATE TABLE IF NOT EXISTS nncdjiftable(customerName VARCHAR,timeShift VARCHAR,date01 VARCHAR,vendorGameThemePT VARCHAR,managerSignature VARCHAR,managerDate VARCHAR,jackpotAmount VARCHAR,lessTaxesWithheld VARCHAR,cashier VARCHAR,taxRate VARCHAR,slotAttendant VARCHAR,totalAmountPaid VARCHAR,slotSupervisorMOD VARCHAR,customerSignature VARCHAR,date03 VARCHAR);");

nncdjifdb.execSQL("INSERT INTO nncdjiftable (customerName, timeShift, date01, vendorGameThemePT, managerSignature, managerDate, jackpotAmount, lessTaxesWithheld, cashierSignature, taxRate, slotAttendantSignature, totalAmountPaid, slotSupervisorMODSignature, customerSignature, date03) VALUES (customerName, timeShift, date01, vendorGameThemePT, managerSignature, managerDate, jackpotAmount, lessTaxesWithheld, cashierSignature, taxRate, slotAttendantSignature, totalAmountPaid, slotSupervisorMODSignature, customerSignature, date03)");

我一直在使用一个教程来做这件事,在一些地方遇到了问题,它使用了某些语法,所以我不得不修改它,但似乎我破坏了它更多,我在这里查看了很多使用SQLITE的内容,没有这样的专栏,但看起来很多人都使用了不同的语法,我不太明白,因为我还是个新手

感谢您的帮助


共 (3) 个答案

  1. # 1 楼答案

    您需要为INSERT语句提供变量。请参见下面您应该使用的模式:

    nncdjifdb.execSQL("INSERT INTO nncdjiftable 
    (customerName, timeShift, date01, vendorGameThemePT, managerSignature, managerDate, jackpotAmount, lessTaxesWithheld, cashierSignature, taxRate, slotAttendantSignature, totalAmountPaid, slotSupervisorMODSignature, customerSignature, date03) 
    VALUES ('"+someVariable+"',"+...+")");
    

    使用execSQL时,字符串中的分号是可选的

    另外,我在Java代码被取下之前看到了它;所以我可以确认变量中有有效值

  2. # 2 楼答案

    我不确定您是否发布了一些相关的代码,但看起来您没有给变量赋值。。。e、 g.customerName=“customerName”。。。等等

  3. # 3 楼答案

    我不确定SQL,但如果您首先注意到。结束于

    ,date03 VARCHAR);");

    第二个

    , date03)");

    注意after)