üzerinde 0'dan büyük bir boyutu ile korkunç İngilizce'm için özür dilerim.CursorIndexOutOfBoundsException: Dizin 0 istediğim, INSERT/SELECT
Ben robot dünyasına yeniyim ve şimdi sqlite db ile bu kadar sorun var:
ben bu kodu çalıştırmak için deneyin: o int id = Integer.parseInt(cursor.getString(0));
geldiklerinde
public void signInOnDB(String name, String surname, String username, String password, String secretQuestion,
String secretAnswer, int g, int m, int a, String regione){
String data = DateTime.setData(g, m, a);
secretAnswer = secretAnswer.toLowerCase();
database.rawQuery("INSERT INTO credenziali (userID, username, password, secretQuestion, secretAnswer) VALUES (null,'" + username + "','" + password + "','" + secretQuestion + "','" +
secretAnswer + "');", null);
Cursor cursor = database.rawQuery("SELECT userID FROM credenziali WHERE username =='"+ username + "';", null);
cursor.moveToFirst();
int id = Integer.parseInt(cursor.getString(0));
cursor.close();
database.rawQuery("INSERT INTO utenti VALUES (" + id + ",'" + name + "','" + surname + "','" + regione + "','" + data + "');", null);
}
programı the android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
oluşturmak
Gerçekten neden istisna oluşturduğuna dair bir fikrim yok, sorgu boş olamaz çünkü bu değeri INSERT sorgusuyla üç satır ekliyorum.
SQLite Browser'da bu 3 sorgumu yürütürsem, döndürülen kayıt doğrudur.
Herkes bana yardım edebilir mi?
çağırma yöntemi:) (/) (açık yakın
databaseAccess = DatabaseAccess.getInstance(this);
databaseAccess.open();
databaseAccess.signInOnDB(insert_name.getText().toString(), insert_surname.getText().toString(),
insert_username.getText().toString(), insert_password1.getText().toString(), insert_secretQuestion.getText().toString(),
insert_secretAnswer.getText().toString(), g, m, a, regionResidence);
databaseAccess.close();'
Tanım: openHelper arasında
/**
* Open the database connection.
*/
public void open() {
this.database = openHelper.getWritableDatabase();
}
/**
* Close the database connection.
*/
public void close() {
if (database != null) {
this.database.close();
}
}
Tanım:
public class DatabaseOpenHelper extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "GDB.db";
private static final int DATABASE_VERSION = 1;
public DatabaseOpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}