gpt4 book ai didi

java - 在java ContentValues中转义sqlite列名

转载 作者:行者123 更新时间:2023-12-01 19:46:27 25 4
gpt4 key购买 nike

我有一个 SQLite 表,其中有一列名为“group”。我尝试过用单引号和方括号进行分隔。每次,它都会插入一个“0”,并且没有错误消息。至少当我不理会它时,我收到一条错误消息:

2019-11-30 16:18:43.634 11008-11008/com.example.fitcardsworkouttracker E/SQLiteDatabase:插入名称时出错=炒鸡蛋卡路里=78组=80份=1个鸡蛋

android.database.sqlite.SQLiteException:靠近“组”:语法错误(代码1):,编译时:插入食物(名称,卡路里,组,服务)值(?,? ,?,?)

                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));

最佳答案

GROUP 是一个关键字,因此如果不转义它,您可能会遇到问题;比如你得到的语法错误。

最好不要对实体名称/标识符(列、表、触发器等)使用关键字。否则,在某些情况下您将不得不转义(将名称括在 []、``、""或 '' 之一中)。

关于java - 在java ContentValues中转义sqlite列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59120449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com