我正在尝试将一些数据插入到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(?,?,?)
答案 0 :(得分:2)
TABLE是reserved word in SQL;你不应该把它当作桌子的名字。
尝试将其更改为:
private static final String DATABASE_TABLE = "myTable";