J'ai essayé depuis presque une semaine maintenant de créer une base de données SQLite avec plus d'une table, mais sans succès. J'ai cherché des heures et regardé tous les sujets sur le sujet ici, et je n'ai aucune idée de ce que je fais mal.Plusieurs tables SQLite
Voici un code que j'ai obtenu sur Internet pour une table, et j'en ai ajouté un autre, et ça ne marche plus.
Adaptateur:
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
public class WorkingAdapter {
public static final String WORKINGDATABASE_NAME = "WORKING_DATABASE";
public static final String WORKINGDATABASE_TABLE = "WORKING_TABLE";
public static final int MYDATABASE_VERSION = 1;
public static final String KEY_ID = "_id";
public static final String KEY_CONTENT = "Content";
//create table MY_DATABASE (ID integer primary key, Content text not null);
private static final String SCRIPT_CREATE_WORKING_DATABASE =
"create table " + WORKINGDATABASE_TABLE + " ("
+ KEY_ID + " integer primary key autoincrement, "
+ KEY_CONTENT + " text not null);";
public static final String WORKINGDATABASE_TABLE2 = "MY_TABLE2";
public static final String KEY_ID2 = "_id2";
public static final String KEY_CONTENT2 = "Content2";
//create table MY_DATABASE (ID integer primary key, Content text not null);
private static final String SCRIPT_CREATE_WORKING_DATABASE2 =
"create table " + WORKINGDATABASE_TABLE2 + " ("
+ KEY_ID2 + " integer primary key autoincrement, "
+ KEY_CONTENT2 + " text not null);";
private SQLiteHelper sqLiteHelper;
private SQLiteDatabase sqLiteDatabase;
private Context context;
public WorkingAdapter(Context c){
context = c;
}
public WorkingAdapter openToRead() throws android.database.SQLException {
sqLiteHelper = new SQLiteHelper(context, WORKINGDATABASE_NAME, null, MYDATABASE_VERSION);
sqLiteDatabase = sqLiteHelper.getReadableDatabase();
return this;
}
public WorkingAdapter openToWrite() throws android.database.SQLException {
sqLiteHelper = new SQLiteHelper(context, WORKINGDATABASE_NAME, null, MYDATABASE_VERSION);
sqLiteDatabase = sqLiteHelper.getWritableDatabase();
return this;
}
public void close(){
sqLiteHelper.close();
}
public long insert(String content){
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_CONTENT, content);
return sqLiteDatabase.insert(WORKINGDATABASE_TABLE, null, contentValues);
}
public long insert2(String content){
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_CONTENT2, content);
return sqLiteDatabase.insert(WORKINGDATABASE_TABLE2, null, contentValues);
}
public int deleteAll(){
return sqLiteDatabase.delete(WORKINGDATABASE_TABLE, null, null);
}
public Cursor queueAll(){
String[] columns = new String[]{KEY_ID, KEY_CONTENT};
Cursor cursor = sqLiteDatabase.query(WORKINGDATABASE_TABLE, columns,
null, null, null, null, null);
return cursor;
}
public Cursor queueAll2(){
String[] columns = new String[]{KEY_ID2, KEY_CONTENT2};
Cursor cursor = sqLiteDatabase.query(WORKINGDATABASE_TABLE2, columns,
null, null, null, null, null);
return cursor;
}
public class SQLiteHelper extends SQLiteOpenHelper {
public SQLiteHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(SCRIPT_CREATE_WORKING_DATABASE);
db.execSQL(SCRIPT_CREATE_WORKING_DATABASE2);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + WORKINGDATABASE_TABLE);
db.execSQL("DROP TABLE IF EXISTS " + WORKINGDATABASE_TABLE2);
onCreate(db);
}
}
}
Activité:
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class AndroidSQLite extends Activity {
private WorkingAdapter myWorkingAdapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView listContent = (ListView)findViewById(R.id.contentlist);
/*
* Create/Open a SQLite database
* and fill with dummy content
* and close it
*/
myWorkingAdapter = new WorkingAdapter(this);
myWorkingAdapter.openToWrite();
myWorkingAdapter.deleteAll();
myWorkingAdapter.insert("A for Apply");
myWorkingAdapter.insert("B for Boy");
myWorkingAdapter.insert("C for Cat");
myWorkingAdapter.insert("D for Dog");
myWorkingAdapter.insert("E for Egg");
myWorkingAdapter.insert("F for Fish");
myWorkingAdapter.insert("G for Girl");
myWorkingAdapter.insert("H for Hand");
myWorkingAdapter.insert("I for Ice-scream");
myWorkingAdapter.insert("J for Jet");
myWorkingAdapter.insert("K for Kite");
myWorkingAdapter.insert("L for Lamp");
myWorkingAdapter.insert("M for Man");
myWorkingAdapter.insert("N for Nose");
myWorkingAdapter.insert("O for Orange");
myWorkingAdapter.insert("P for Pen");
myWorkingAdapter.insert("Q for Queen");
myWorkingAdapter.insert("R for Rain");
myWorkingAdapter.insert("S for Sugar");
myWorkingAdapter.insert("T for Tree");
myWorkingAdapter.insert("U for Umbrella");
myWorkingAdapter.insert("V for Van");
myWorkingAdapter.insert("W for Water");
myWorkingAdapter.insert("X for X'mas");
myWorkingAdapter.insert("Y for Yellow");
myWorkingAdapter.insert("Z for Zoo");
myWorkingAdapter.insert2("W FOR WORKING");
myWorkingAdapter.close();
/*
* Open the same SQLite database
* and read all it's content.
*/
myWorkingAdapter = new WorkingAdapter(this);
myWorkingAdapter.openToRead();
Cursor cursor = myWorkingAdapter.queueAll2();
startManagingCursor(cursor);
String[] from = new String[]{WorkingAdapter.KEY_CONTENT};
int[] to = new int[]{R.id.text};
SimpleCursorAdapter cursorAdapter =
new SimpleCursorAdapter(this, R.layout.row, cursor, from, to);
listContent.setAdapter(cursorAdapter);
myWorkingAdapter.close();
}
}
je sans cesse cherché exaples pour les bases de données SQLite avec plus d'une table, et non d'entre eux travaillaient, et a fait exactement ce que je lis dans toutes les pages que j'ai trouvées sur le sujet, pouvez-vous s'il vous plaît me dire ce que je fais mal?
Merci :)
Le simple fait d'indiquer que "ça ne marche pas" n'est pas suffisant. Vous devez nous dire ce qui vous cause spécifiquement des problèmes. Publiez * toutes * les informations de logcat si une exception est levée. –