0

私は SQLite で初めて作業しています。データベースの次のコードがあります。

public class SqlLiteDataBase extends SQLiteOpenHelper{
String sqlCreate = "CREATE TABLE lol (code INTEGER, name TEXT)";

public SqlLiteDataBase(Context context, String name, CursorFactory factory, int version) {
    super(context, name, factory, version);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(sqlCreate);
}

@Override
public void onUpgrade(SQLiteDatabase db, int versionAnterior, int versionNueva) {
    db.execSQL("DROP TABLE IF EXISTS lol");
    db.execSQL(sqlCreate);
}}

次に、クラスをインスタンス化し、データベースに何かを追加しようとします:

SqlLiteDataBase sql = new SqlLiteDataBase(this, "DBlol", null, 1);
    SQLiteDatabase db = sql.getWritableDatabase();
    if(db != null)
    {
        int code = 1;
        String name = "test";
        db.execSQL("INSERT INTO lol (code, name) " + "VALUES (" + code + ", '" + name +"')");
        db.close();
    }

しかし、何も追加されていません!data/... にある携帯電話のファイルであると思われますが、フォルダーは空です。何が起こっているのかを DDMS で確認しようとしましたが、何も表示されません。何が起こっているのですか? これは許可の問題ですか?ここに私の許可があります:

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

御時間ありがとうございます

4

2 に答える 2

1

sqlCreate 文字列にセミコロンを忘れたと思います。

String sqlCreate = "CREATE TABLE lol (code INTEGER, name TEXT);";
于 2012-06-11T18:14:54.850 に答える
0

"+ name +"thisの代わりに thisを使用してみてください'" + name +"''for variableは必要ないと思います。
または、次の標準的なアプローチを使用してみてください。

 public long createEntry(String code, String name) {
    ContentValues initialValues = new ContentValues();
    initialValues.put("code", code);
    initialValues.put("name", name);

    return db.insert("lol", null, initialValues);
}

DB関連の詳細については、これをお勧めします

于 2012-06-11T18:43:03.897 に答える