【问题标题】:Android SQLite: insert() issuesAndroid SQLite:插入()问题
【发布时间】:2014-01-26 13:02:41
【问题描述】:

我正在尝试将一些数据插入到 Android 系统上的 SQLite3 数据库中。

这个方法应该接受三个字符串并将它们插入数据库:

public void createEntry(String description, String reps, String weight) 
{
    ContentValues cv = new ContentValues(); 
    cv.put(KEY_DESCRIPTION, description);
    cv.put(KEY_REPS, reps);
    cv.put(KEY_WEIGHT, weight);
    sqlDB.insert(DATABASE_TABLE, null, cv);     
}

列(KEY_DESCRIPTION,..)都定义为 TEXT NOT NULL,我还添加了一个自动递增列。

在我的主要活动中,我使用此代码从 EditText Widgets 获取输入

字符串描述 = sqlDescription.getText().toString();

然后我正在创建我的 DB 类的实例:

            DB entry = new DB(MainActivity.this);
            entry.open();
            entry.createEntry(description, reps, weight);
            entry.close();

open() 使用 SQLiteOpenHelper 并设置数据库:

public DB open()
{
    sqlHelper = new dbHelper(sqlContext);
    sqlDB = sqlHelper.getWritableDatabase();
    return this;
}

但是当我调用这个方法时:

entry.createEntry(description, reps, weight);

我收到以下错误:

(1) “表”附近:语法错误

E/SQLiteDatabase(19344):插入错误 Description=test Weight=tesz Reps=test

E/SQLiteDatabase(19344):android.database.sqlite.SQLiteException:靠近“表”:语法错误

(代码 1):,编译时:INSERT INTO Table(Description,Weight,Reps) VALUES (?,?,?)

【问题讨论】:

  • 请分享DATABASE_TABLEString的值
  • 私有静态最终字符串 DATABASE_TABLE = "Table";

标签: android sqlite sql-insert


【解决方案1】:

TABLE 是reserved word in SQL;你不应该使用它作为表的名称。

尝试将其更改为:

private static final String DATABASE_TABLE = "myTable";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多