Android SQLite:insert()问题

时间:2014-01-26 13:02:41

标签: android sqlite sql-insert

我正在尝试将一些数据插入到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

获取输入
  

String description = 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)“Table”附近:语法错误

E / SQLiteDatabase(19344):插入错误说明=测试权重= tesz代表=测试

E / SQLiteDatabase(19344):android.database.sqlite.SQLiteException:near“Table”:语法错误

(代码1):,编译时:INSERT INTO表(描述,权重,代表)VALUES(?,?,?)

1 个答案:

答案 0 :(得分:2)

TABLE是reserved word in SQL;你不应该把它当作桌子的名字。

尝试将其更改为:

private static final String DATABASE_TABLE = "myTable";