2012-03-31 13 views
0

私はアンドロイドでSQLiteのデータベースを作成しましたが、readbleのみですので、テーブルに情報を入力してAndroidに関数を追加したかったのです。データ入力SQLiteのAndroid

実行時にアプリケーションでこれを行う方法についてのチュートリアルはたくさんありますが、ユーザーがアプリケーションを読み込んだときにアプリ内に既にテーブル情報を表示させるにはどうすればよいですか?

イムは確かにあなたがたの多くは、このhttp://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

これは良いですが、それが外部キーをサポートしてdoesntの...

をお勧めします私はあなたがそれをこの方法で行うことができます知っているが、私は多くの情報を持っています。

ContentValues values = new ContentValues(); 
    values.put(DBAdapter.Column1, "HP"); 
    values.put(DBAdapter.Column2, "qw"); 
    values.put(DBAdapter.Column3, "5280"); 
    values.put(DBAdapter.Column4, "345, 546"); 
    db.insert(DBAdapter.TABLE, null, values); 

答えて

1

外部キーがあります。ダンプからこの行を削除する必要があります。

PRAGMA foreign_keys=OFF;とviolà!あなたは外来キーを持っています。

あなたがしなければならないのはこれです:あなたはあなたのDBを作成するときに

db.execSQL("PRAGMA foreign_keys=ON;"); 

。デフォルトでは、オフになっています。スイッチをオンにすると、外部キーは取得されません。いくつかのサンプルコードが必要ですか?

+0

申し訳ありませんが、あなたは、より詳細に説明することができます... – BoneStarr

0

SQLiteOpenHelperを継承しているクラスでinsert文を実行することはできませんか?このような何か:

public class DataStore extends SQLiteOpenHelper { 

@Override 
public void onCreate(SQLiteDatabase db) { 
    // execute create 
      // execute insert 
    } 

}

0

が、ユーザーがアプリケーションをロードするときにどのようにあなたはすでにアプリでテーブル情報を持つことができますか?

これを試してみてください:

@Override 
public void onOpen(SQLiteDatabase db) { 
    super.onOpen(db); 
    if (!db.isReadOnly()) { 
     db.execSQL("PRAGMA foreign_keys=ON;"); 

     ContentValues values = new ContentValues(); 
     values.put(COLUMN_NAME, DATA); 
     long id = db.insert(TABLE_NAME, null, values); 
    } 
} 
関連する問題