【发布时间】:2012-01-11 00:33:09
【问题描述】:
我在 SQlite 中创建了一个名为 Ord 的表,架构为:
sqlite> .schema
CREATE TABLE Ord (
int _id,
text Name
);
我使用了一个名为 insert_by_id 的函数和代码:
public void insert_by_id(int id){
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_ID, id);
db.insert(TABLE_NAME2, null, contentValues);
}
当然:私有静态最终字符串 TABLE_NAME2 = "Ord"; 和 : public static final String KEY_ID = "_id";
但是当我尝试将它与 onClick 事件一起使用时,我得到了错误:
*01-11 02:13:38.622: E/Database(424): android.database.sqlite.SQLiteException: table Ord 没有名为 _id: 的列,编译时:INSERT INTO Ord(_id) VALUES(?) ;*
我想通过 id 数据插入的部分是这样的:
plus[i].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Salad_Num[k]++;
mySQLiteAdapter.insert_by_id(Salad_Num[k]);
quant.setText(""+Salad_Num[k]);
}
});
我想没有错字,只要我在这里搜索过类似的答案,所有这些都是在代码中创建数据库,而不是在尝试运行项目之前。
【问题讨论】:
-
我将其添加为评论,因为我不确定它是否重要,但我将它扔在那里。将 _id 设置为数据库创建中的主要字段。
CREATE TABLE Ord ( int _id primary, text Name );. -
您是否尝试完全卸载您的应用并重新复制?
-
是的,这就是我接下来的想法,也许模拟器上的表是旧版本,出于某种原因没有_id。从模拟器中拉取 sqlite 文件并在 SQLitebrowser 中打开以仔细检查表。
-
没有,但是我创建了一个新表 Ord2 并在项目中使用它并得到了同样的错误。
-
错误的 SQlite 语法...第一个字段第二个类型... CREATE TABLE Ord (_id int, Name text);感谢您的帮助