0

SQlite を使用した Android アプリのコード行について疑問があります。

if(db != null)
    {
        db.delete("Users", null, null);

        //Insert 5 users
        for(int i=1; i<=5; i++)
        {
            //Generate the data
            int code = i;
            String name = "User" + i;

            //Insert data on table Users
            db.execSQL("INSERT INTO Users (code, name) " +
                       "VALUES (" + code + ", '" + name +"')");
        }
    }

すべてのコードは完全に機能しますが、文字db.execSQL("INSERT INTO Users (code, name) " + "VALUES (" + code + ", '" + name +"')");を削除する'とアプリがクラッシュします。'キャラクターとを使用する必要がある理由を誰か教えてもらえます"か? なぜ"足りないのでしょうか?

私は初心者です。質問が基本的すぎる場合は申し訳ありません。

4

2 に答える 2

2

まず第一に、SQL をそのように書かないでください。挿入を行うために他の回答が言うことを行います。

2 つ目は、name 列が文字列であるため、insert ステートメントで引用符で囲む必要があるため、機能しません。挿入を行う SQL は次のとおりです。

INSERT INTO Users (code, name) VALUES (666, 'Bruce Dickinson')
于 2013-10-11T01:48:47.640 に答える
1

クラスContentValuesを使用して、SQL ステートメントをコンパイルするための情報を設定します。

元:

ContentValues content = new ContentValues();
content.putString("name", "Bruce Dickinson");
content.putInt("code", 666);

SqliteDatabase database = helper.getWritableDatabase();
database.insert("tablename", null, content);
于 2013-10-11T00:33:05.900 に答える