Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLite:如何修复插入到的语法?_Android_Sqlite_Android Sqlite_Insert Into - Fatal编程技术网

Android SQLite:如何修复插入到的语法?

Android SQLite:如何修复插入到的语法?,android,sqlite,android-sqlite,insert-into,Android,Sqlite,Android Sqlite,Insert Into,我有一个列CARDNUM,我试图在一个名为TOTALCOUNT的表中增加+1。应用程序崩溃,集合附近出现语法错误 这是我的插入声明: db.execSQL("INSERT INTO "+ DBContract.DBEntry.TABLE_NAME_TOTALCOUNT+" SET "+ DBContract.DBEntry.COLUMN_NAME_CARDNUM + "="+ DBContract.DBEntry.COLUMN_NAME_CARDNUM+"+1"); 我有什么不对劲 priva

我有一个列CARDNUM,我试图在一个名为TOTALCOUNT的表中增加+1。应用程序崩溃,集合附近出现语法错误

这是我的插入声明:

db.execSQL("INSERT INTO "+ DBContract.DBEntry.TABLE_NAME_TOTALCOUNT+" SET "+ DBContract.DBEntry.COLUMN_NAME_CARDNUM + "="+ DBContract.DBEntry.COLUMN_NAME_CARDNUM+"+1");
我有什么不对劲

private static final String SQL_CREATE_CARDNUM =
            "CREATE TABLE IF NOT EXISTS "+ DBContract.DBEntry.TABLE_NAME_TOTALCOUNT +
            "( "+ DBContract.DBEntry.COLUMN_NAME_COUNTID +
            " INTEGER PRIMARY KEY UNIQUE , "+
            DBContract.DBEntry.COLUMN_NAME_CARDNUM +
            " INTEGER DEFAULT 1);";


// Push the database data to the RecyclerView
public List<UserData> getDataFromDB(){
    List<UserData> modelList = new ArrayList<>();        
    String query = "SELECT *,(SELECT " + DBContract.DBEntry.COLUMN_NAME_CARDNUM +
            " from " + DBContract.DBEntry.TABLE_NAME_TOTALCOUNT +") from "
            + DBContract.DBEntry.TABLE_NAME_USERINPUTS +";";

    SQLiteDatabase db = this.getReadableDatabase();

    db.beginTransaction();

    Cursor cursor = db.rawQuery(query, null);

        try {
            if (cursor.moveToFirst()) {
                do {
                    UserData userData = new UserData();
                    userData.setTodo(cursor.getString(1));
                    userData.setNote1(cursor.getString(2));
                    userData.setNote2(cursor.getString(3));
                    userData.setDuedate(cursor.getString(4));
                    userData.setDuetime(cursor.getString(5));
                    userData.setTimestamp(cursor.getLong6));
                    userData.setCardnum(cursor.getInt(7));

                    modelList.add(0, userData);
                    } while (cursor.moveToNext());
            }
        } finally {
              if(cursor !=null && !cursor.isClosed()){
              cursor.close();
              }
          }
    db.setTransactionSuccessful();
    db.endTransaction();
    return modelList;
}

CARDNUM的Logcat显示SelectCardNum fromTotalCount=0。

插入的语法不正确

请参阅以下内容:

例如:

INSERT INTO table1 (
 column1,
 column2 ,..)
VALUES
 (
 value1,
 value2 ,...);
试试这个

db.execSQL("UPDATE "+ DBContract.DBEntry.TABLE_NAME_TOTALCOUNT+" SET "+ DBContract.DBEntry.COLUMN_NAME_CARDNUM + "="+ DBContract.DBEntry.COLUMN_NAME_CARDNUM+"+1");

建议使用WHERE来设置id以更新特定行。

您试图使用INSERT来增加一列,但这是无法完成的。但若您仍要使用INSERT语句,则不能在INSERT中使用SET。 插入操作应如下所示:

INSERT INTO TABLE_NAME (cloumn1_name, column2_name, column3_name) VALUES (column1_value,cloumn2_value,column3_value)
UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];
您可以通过INSERT语句不更新值。若要更新值,必须使用update语句。在这种情况下,UPDATE语句如下所示:

INSERT INTO TABLE_NAME (cloumn1_name, column2_name, column3_name) VALUES (column1_value,cloumn2_value,column3_value)
UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];

据我所知,您不能在INSERT中使用set。它在那里更新。如果我错了,请纠正我。好的,但没有更新。检查@Hello World's answerreference:。。您的插入查询错误@janki gadhiya谢谢我会查出来的…但请让我知道具体的错误!我想使用INSERT向列中添加新行。我认为更新应该只用于编辑/更新现有行数据。请提供建议。如果行不存在,您希望如何将CARDNUM增加1?创建表时,CARDNUM的默认值设置为1:…列\u名称\u CARDNUM+整数默认值1在这种情况下,您必须仅使用插入查询,并将2设置为CARDNUM Column2的值。为什么?在哪里设置值?我以为主键是第0列,而CARDNUM列是1,对吗?