首页 > 解决方案 > 如何在 SQLite 中向表中添加变量?

问题描述

我想要做的是在我的 SQL 数据库中存储一个 ArrayList,我已经使用此代码来执行此操作:

try {
        SQLiteDatabase database = this.openOrCreateDatabase("arrayList", MODE_PRIVATE, null);

        Gson gson = new Gson();
        String inputString = gson.toJson(itemOne);

        Log.i("InputString", inputString);

        database.execSQL("CREATE TABLE IF NOT EXISTS savedTasks(item VARCHAR)");

        ContentValues cv = new ContentValues();
        cv.put("item", inputString);
        database.insert("savedTasks", null, cv);

        Cursor resultSet = database.rawQuery("Select * from savedTasks", null);
        resultSet.moveToFirst();

        String getData;

        if(resultSet.moveToNext()) {
            getData = resultSet.getString(0);

            Type type = new TypeToken<String>() {}.getType();

            arrayLists.add(gson.fromJson(getData, type));
            adapter.notifyDataSetChanged();
        }

        Log.i("ArrayLists", String.valueOf(arrayLists));

    } catch (Exception e) {
        e.printStackTrace();
    }

我不断收到错误,E/SQLiteLog:(1)没有这样的列:inputString。

注释代码来自this post的答案。无论有没有它,我都会遇到同样的错误。谷歌搜索没有产生任何可用的答案或示例。我在 Android Studio (java) 中写这个。

标签: javaandroidsqliteandroid-sqlite

解决方案


向表中插入新行的推荐方法insert()ContentValues

ContentValues cv = new ContentValues();
cv.put("item", variable);
database.insert("tablename", null, cv);

更改"tablename"为您的表的实际名称。


推荐阅读