Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.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

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 sql外观字符串数据_Android_Sqlite_Android Sqlite - Fatal编程技术网

android sql外观字符串数据

android sql外观字符串数据,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我想像这样附加字符串数据 姓名、身份证 应用程序,1 到 姓名、身份证 附加,1 但是下面的代码输出 V/姓名:0 身份证号码:1 尽管我将我的表更新为“name=name+‘ending’”,但它输出0。。。为什么? @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_

我想像这样附加字符串数据

姓名、身份证

应用程序,1

姓名、身份证

附加,1

但是下面的代码输出

V/姓名:0

身份证号码:1

尽管我将我的表更新为“name=name+‘ending’”,但它输出0。。。为什么?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    SQLiteDatabase sqLiteDatabase = this.openOrCreateDatabase("User", MODE_PRIVATE, null);
    sqLiteDatabase.execSQL("CREATE TABLE IF NOT EXISTS test (name VARCHAR(100), id INTEGER PRIMARY KEY)");

    String sql = "INSERT INTO test (name, age) VALUES (?, ?)";
    SQLiteStatement statement = sqLiteDatabase.compileStatement(sql);
    statement.bindString(1, "app");
    statement.execute();

    String sql2 = "UPDATE test SET name = name + ? WHERE id = ?";
    statement = sqLiteDatabase.compileStatement(sql2);
    statement.bindString(1, "ending");
    statement.bindLong(2, 1);
    statement.execute();


    Cursor c = sqLiteDatabase.rawQuery("SELECT * FROM test", null);
    int nameIndex = c.getColumnIndex("name");
    int idIndex = c.getColumnIndex("id");

    c.moveToFirst();
    do {
        Log.v("name", c.getString(nameIndex));
        Log.v("id", c.getString(idIndex));
    } while (c.moveToNext());

    sqLiteDatabase.execSQL("DELETE FROM test");
}

SQLite中的字符串连接运算符是
|
,而不是
+
,因此您应该使用以下更新查询:

String sql2 = "UPDATE test SET name = name || ? WHERE id = ?";
其他一些数据库使用
+
进行字符串连接(例如SQL Server);也许这就是你的用法的来源