转义java ContentValues中的sqlite列名
我有一个SQLite表,其中有一列名为“group”。我试过用单引号和方括号来划界。每次都会插入一个没有错误消息的“0”。至少当我不去管它时,我会收到一条错误消息: 2019-11-30 16:18:43.634 11008-11008/com.example.fitcardsworkouttracker E/sqlite数据库:插入名称时出错=炒鸡蛋热量=78组=80份=1个鸡蛋 android.database.sqlite.SQLiteException:near“group”:编译时语法错误(代码1):插入食物(名称、卡路里、组、服务)值(?、、?、?)转义java ContentValues中的sqlite列名,java,sqlite,content-values,Java,Sqlite,Content Values,我有一个SQLite表,其中有一列名为“group”。我试过用单引号和方括号来划界。每次都会插入一个没有错误消息的“0”。至少当我不去管它时,我会收到一条错误消息: 2019-11-30 16:18:43.634 11008-11008/com.example.fitcardsworkouttracker E/sqlite数据库:插入名称时出错=炒鸡蛋热量=78组=80份=1个鸡蛋 android.database.sqlite.SQLiteException:near“group”:编译时语法
组是一个关键字,因此如果不转义,您可能会遇到问题;例如您得到的语法错误 最好不要将关键字用于实体名称/标识符(列、表、触发器等)。否则,在可能的情况下,您将不得不转义(将名称括在[]、`、“”或“”中的一个中)
- 看
ContentValues contentValues = new ContentValues();
String newGroup = (String)tvGroup.getSelectedItem();
Cursor c = myDatabase.rawQuery("SELECT initial FROM groups WHERE name = ?", new String[] {newGroup});
c.moveToFirst();
Log.i("EditHelpingDialog", "initial " + c.getInt(0));
contentValues.put("name", foodName);
contentValues.put("serving", etServing.getText().toString());
contentValues.put("calories", etCalories.getText().toString());
contentValues.put("group", (byte) c.getInt(0));