2012-03-31 8 views
0

Ok, also habe ich meine Datenbank in SQLite in Android erstellt, aber es ist nur lesbar, ich wollte meine Informationen in die Tabellen eingeben, um Funktionen in Android hinzuzufügen.Dateneingabe SQLite Android

Es gibt viele Tutorials, wie dies über die Anwendung zur Laufzeit gemacht wird, aber wie können Sie die Tabelleninformationen bereits in der App haben, wenn der Benutzer die Anwendung lädt?

Ich bin sicher, viele von Ihnen empfehlen diese http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

Das ist gut, aber es tut Fremdschlüssel unterstützen ...

Ich weiß, dass Sie es auf diese Weise tun können, aber ich habe eine Menge Informationen.

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); 

Antwort

1

Fremdschlüssel ist da. Sie müssen diese Zeile aus dem Speicherauszug entfernen:

PRAGMA foreign_keys=OFF; und Violà! Du hast deine Fremdschlüssel.

Alles, was Sie tun müssen, ist dies:

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

, wenn Sie Ihre DB erstellen. Standardmäßig ist es deaktiviert und Sie erhalten keine Fremdschlüssel, wenn Sie es einschalten. Möchten Sie einen Beispielcode?

+0

Leider können Sie näher erläutern ... – BoneStarr

0

Können Sie nicht einfach insert-Anweisungen in Ihrer Klasse ausführen, die SQLiteOpenHelper erweitert? Etwas wie folgt aus:

public class DataStore extends SQLiteOpenHelper { 

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

}

0

aber wie kann man die Tabelleninformationen bereits in der App haben, wenn der Benutzer die Anwendung lädt?

Try this:

@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); 
    } 
}