1

AndroidのSQLiteDBにデータを挿入しようとしていますが、以下のコードが機能しません。誰でも問題を見つけることができますか?

db = this.openOrCreateDatabase("data_7.db", 0, null);
db.execSQL("CREATE TABLE IF NOT EXISTS 'group' (my_id TEXT NOT NULL, my_key TEXT NOT NULL)");
db.execSQL("INSERT INTO 'group' (my_id, my_key) VALUES ('abc', '123')");
db.close();

コードを実行した後、エミュレータからSQLiteファイルを抽出し、SQLite GUIビューアを使用して開きました。テーブルは作成されましたが、データは挿入されませんでした。

ノート:

  • 私は一日中このサイトを検索しましたが、この問題に対する適切な答えを見つけることができませんでした
  • .insert()のようなヘルパーメソッドを使わずにこれを実行したいと思います。すなわち。純粋なSQLを使用する必要があります
4

2 に答える 2

0

onCreate()次のように構築する必要がある Dababase クラスにあるメソッドでテーブルを作成する必要があります。

public class Database extends SQLiteOpenHelper
{
    public static final String DB_NAME="YourDBName";
    public static final int VERSION=1;
    Context context=null;
    public Database(Context context) 
    {
        super(context, DB_NAME, null, VERSION);
        this.context=context;
    }
    @Override
    public void onCreate(SQLiteDatabase db) 
    {
        try
        {
            String sql="CREATE TABLE group(my_id TEXT NOT NULL PRIMARY KEY, my_key TEXT NOT NULL)";
            String insert="INSERT INTO group VALUES('abc','123');";
            db.execSQL(sql);     
            db.execSQL(insert);  
        }
        catch(Exception e)
        {
            Log.d("Exception", e.toString());
        }
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
    {
        db.execSQL("DROP TABLE IF EXISTS group");
        onCreate(db);
    }
}

クエリを実行するには、古いデータベースが削除されていることを確認するか、バージョンを 2 に変更してください。このクエリを実行する必要がある場合は、次のように記述する必要があります。

Database db=new Database();
SQLiteDatabasse read=db.getReadableDatabase();
于 2013-01-20T18:08:37.247 に答える
0

この方法を試してください:

"INSERT INTO group (my_id, my_key) " + "VALUES ('" + field_one + "', '" + field_two + "')";
于 2013-01-20T07:54:45.900 に答える