Android 插入不起作用为什么?

Android 插入不起作用为什么?,android,database,cursor,insert-into,Android,Database,Cursor,Insert Into,该表由xml生成,如下所示 创建表格订单(id整数自动递增主键、id\u房间整数、nr\u表格整数、id\u用户整数、id\u付款整数、总整数) Boolean ab=com.DataConnector.DataConnector.getInstance(getApplicationContext()).executeQuery( "INSERT INTO orders (id_room,nr_table,id_user,id_payment,total)" +"VALUES (1,1,1,0,

该表由xml生成,如下所示
创建表格订单(id整数自动递增主键、id\u房间整数、nr\u表格整数、id\u用户整数、id\u付款整数、总整数)

Boolean ab=com.DataConnector.DataConnector.getInstance(getApplicationContext()).executeQuery(
"INSERT INTO orders (id_room,nr_table,id_user,id_payment,total)" +"VALUES (1,1,1,0,100) ");
这个没问题

Boolean ab=com.DataConnector.DataConnector.getInstance(getApplicationContext()).executeQuery(
"INSERT INTO orders (id_room,nr_table,id_user,id_payment,total)" +"VALUES (1,1,1,0,100) ");
这个扔

Boolean ab=com.DataConnector.DataConnector.getInstance(getApplicationContext()).executeQuery(
"INSERT INTO orders (id_room,nr_table,id_user,id_payment,total)" +"VALUES (1,1,1,0,100) ");
no such column: orders (code 1): , while compiling: INSERT INTO orders (id_room,nr_table,id_user,id_payment,total)VALUES (1,1,1,0,100)

Log.i("cursor id", cursor.getColumnName(0) + cursor.getColumnName(1) + cursor.getColumnName(2) + cursor.getColumnName(3) +cursor.getColumnName(4) + cursor.getColumnName(5));
returns `idid_roomnr_tableid_userid_paymenttotal

所以我有一个表,列

在“总计”和“值”之间没有空格?

应该是表定义中的一个问题。确保所有列都是整数

Boolean ab=com.DataConnector.DataConnector.getInstance(getApplicationContext()).executeQuery(
"INSERT INTO orders (id_room,nr_table,id_user,id_payment,total)" +"VALUES (1,1,1,0,100) ");
请尝试再次创建如下表:

Boolean ab=com.DataConnector.DataConnector.getInstance(getApplicationContext()).executeQuery(
"INSERT INTO orders (id_room,nr_table,id_user,id_payment,total)" +"VALUES (1,1,1,0,100) ");
CREATE TABLE orders (id INTEGER PRIMARY KEY, id_room INTEGER, nr_table INTEGER, id_user INTEGER, id_payment INTEGER, total INTEGER)

我想您需要使用表中的_id属性

Boolean ab=com.DataConnector.DataConnector.getInstance(getApplicationContext()).executeQuery(
"INSERT INTO orders (id_room,nr_table,id_user,id_payment,total)" +"VALUES (1,1,1,0,100) ");
如果要这样做,最好总是在表中使用属性_id 使用游标处理

Boolean ab=com.DataConnector.DataConnector.getInstance(getApplicationContext()).executeQuery(
"INSERT INTO orders (id_room,nr_table,id_user,id_payment,total)" +"VALUES (1,1,1,0,100) ");
为了你更好的理解

Boolean ab=com.DataConnector.DataConnector.getInstance(getApplicationContext()).executeQuery(
"INSERT INTO orders (id_room,nr_table,id_user,id_payment,total)" +"VALUES (1,1,1,0,100) ");

见讨论和讨论。在Android中使用数据库、光标和适配器可能会让您感到舒适。

抱歉,问题解决了,我在orders表上有一个更新触发器,并且出现了一个实际错误

所以问题是我如何解决无此类列问题。您验证了表、订单及其列了吗?我先检查一下。
从sqlite_master中选择name,其中type='table'和name='table_name'
是的,如果你考虑一下,返回的是一个名为colmun的游标,我不知道它是否好??你的LogCat返回了
id,id\u room,nr\u table,id\u user,id\u payment,total
,在我看来,如果自动递增,你只需要在insert语句中添加
id
,值为null。你试过了吗?没有像第一个查询那样的空格,而且它可以工作,我试过空格,但仍然没有这样的colmun:| total是数字,改为整数,还有同样的问题:(但它是有希望的:)试着测试只插入一列,如果测试成功,再添加更多列在你的问题中发布该表的定义。尝试升级版本,并在onupdate方法中强制删除该表并再次创建(在DB Manager定义中)
Boolean ab=com.DataConnector.DataConnector.getInstance(getApplicationContext()).executeQuery(
"INSERT INTO orders (id_room,nr_table,id_user,id_payment,total)" +"VALUES (1,1,1,0,100) ");