Hi,
ich versuche gerade einen Datenbank Zugriff zu implementieren aber irgendwie will die Sache nicht so, wie ich will.
Ich wollte mal fragen, ob ihr mal über meinen Code rübersehen könntet vieleicht seht ihr ja den Fehler.
Java
import java.util.ArrayList;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
public class main extends Activity {
private final String MY_DATABASE_NAME = "testDB";
private final String DATABASE_TABLE1 = "Coordinaten";
private final String DATABASE_TABLE2 = "Adresse";
private final String TAG = main.class.getSimpleName();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//ArrayList<String> results = new ArrayList<String>();
//DB erstellen
SQLiteDatabase myDB = this.openOrCreateDatabase(MY_DATABASE_NAME, MODE_PRIVATE, null);
//Anlegen der Tabellen
myDB.execSQL("CREATE TABLE IF NOT EXISTS "+ DATABASE_TABLE1 + " (Latitude VARCHAR, Longitude VARCHAR);");
myDB.execSQL("CREATE TABLE IF NOT EXISTS "+ DATABASE_TABLE2 + " (Town VARCHAR, Zipcode VARCHAR);");
//INSERT
myDB.execSQL("INSERT INTO "+ DATABASE_TABLE1+ " (Latitude, Longitude) VALUES ('7.69043', '21.33432');");
myDB.execSQL("INSERT INTO "+ DATABASE_TABLE2+ " (Town, Zipcode) VALUES ('Saarbrücken', '123456');");
//Zugriff
Cursor c = myDB.rawQuery("SELECT * FROM " + DATABASE_TABLE1 , null);
Cursor c2 = myDB.rawQuery("SELECT * FROM " + DATABASE_TABLE2 , null);
int a = c.getColumnIndex("Latitude");
int b = c.getColumnIndex("Longitude");
Log.i(TAG,"a: " + a);
Log.i(TAG,"b: " + b);
if(c != null){
Log.i(TAG,"C.isFIRST() "+ c.isFirst());
if(c.isFirst()){
do{
//ausgabe Inhalt
Log.i(TAG,"Coordinaten:" + c.getString(a) + " und " + c.getString(b));
}while(c.moveToNext());
}
}
else{
Log.i(TAG,"keine daten in cursor coordinatne");
}
}
Alles anzeigen
Wenn ich die Code laufen lassen wird mir angezeigt das "c.isFirst() == false" ist. Lass ich es weg wirft das Programm eine Exception.
Code
Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 2
Laut der LogCat wird die Exception durch das "Log.i(TAG,"Coordinaten:" + c.getString(a) + " und " + c.getString(b));" ausgelöst.
MFG Titus