【问题标题】:table Ord has no column named _id表 Ord 没有名为 _id 的列
【发布时间】: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);感谢您的帮助

标签: java android sqlite


【解决方案1】:

SQL 语法错误!您正在尝试创建数据类型为“名称”的列“文本”。检查下面的正确语法,我猜你已经修复了它。

CREATE TABLE Ord (
int _id,
Name text
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 2013-07-29
    相关资源
    最近更新 更多