Попытка извлечь данные из SQLitedatabase но получить следующую errer:SQLite ошибка базы данных пустой указатель
android.database.CursorIndexOutOfBoundExceptions: Index -1 requested with a size of 4
ли наставит меня эта ошибка occuring.thanks заранее
Это мой весь код, который я сделал, :
DataBaseHelper.java
public class DataBaseHelper extends SQLiteOpenHelper
{
public DataBaseHelper(Context context, String name,CursorFactory factory, int version)
{
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase _db)
{
_db.execSQL(LoginDataBaseAdapter.DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase _db, int _oldVersion, int _newVersion)
{
Log.w("TaskDBAdapter", "Upgrading from version " +_oldVersion + " to "
+_newVersion + ", which will destroy all old data");
_db.execSQL("DROP TABLE IF EXISTS " + "LOGIN2");
onCreate(_db);
}
}
LoginDataBaseHelper.java
public class LoginDataBaseAdapter
{
ArrayList<String> results=new ArrayList<String>();
static final String DATABASE_NAME = "login2.db";
static final int DATABASE_VERSION = 1;
public static final int NAME_COLUMN = 1;
public static final String Key_id="_id";
static final String DATABASE_CREATE = "create table "+"LOGIN2"+
"(" +"Key_id"+" integer primary key autoincrement,"
+ "NAME text, FATHERNAME text, MOTHERNAME text,
DOB integer, ADDRESS text, PHONE integer, GENDER text,
MARITALSTATUS text, EMAIL text, USERNAME text,
PASSWORD text); ";
public SQLiteDatabase db;
private final Context context;
private DataBaseHelper dbHelper;
public LoginDataBaseAdapter(Context _context)
{
context = _context;
dbHelper = new DataBaseHelper(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public LoginDataBaseAdapter open() throws SQLException
{
db = dbHelper.getWritableDatabase();
return this;
}
public void close()
{
db.close();
}
public SQLiteDatabase getDatabaseInstance()
{
return db;
}
public void insertEntry(String name,String father,
String mother, String dob, String address, String phone,
String gender,String marital,String email,String username,
String password)
{
ContentValues newValues = new ContentValues();
newValues.put("NAME", name);
newValues.put("FATHERNAME",father);
newValues.put("MOTHERNAME", mother);
newValues.put("DOB", dob);
newValues.put("ADDRESS", address);
newValues.put("PHONE", phone);
newValues.put("GENDER", gender);
newValues.put("MARITALSTATUS", marital);
newValues.put("EMAIL", email);
newValues.put("USERNAME", username);
newValues.put("PASSWORD", password);
db.insert("LOGIN2", null, newValues);
}
public int deleteEntry(String Address)
{
String where="ADDRESS=?";
int numberOFEntriesDeleted=
db.delete("LOGIN2", where, new String[]{Address}) ;
return numberOFEntriesDeleted;
}
public String getSinlgeEntry(String userName)
{
Cursor cursor=db.query("LOGIN2", null, " USERNAME=?",
new String[]{userName}, null, null, null);
if(cursor.getCount()<1) // UserName Not Exist
{
cursor.close();
return "NOT EXIST";
}
cursor.moveToFirst();
String password= cursor.getString(cursor.getColumnIndex("PASSWORD"));
cursor.close();
return password;
}
public void updateEntry(String userName,String password, String roll)
{
ContentValues updatedValues = new ContentValues();
updatedValues.put("USERNAME", userName);
updatedValues.put("PASSWORD",password);
updatedValues.put("ROLL", roll);
String where="USERNAME = ?";
db.update("LOGIN2",updatedValues, where, new String[]{userName});
}
public ArrayList<String> getFriends()
{
ArrayList<String> result=new ArrayList<String>();
Cursor c=db.rawQuery("SELECT * from"+" LOGIN2"+" ", null);
do
{
String strr=c.getString(c.getColumnIndex("USERNAME"));
result.add(strr);
}while(c.moveToNext());
return result;
}}
Я хочу напечатать всех пользователей в соответствии с их USERNAME поле в виде списка. Вот код, который я написал для него.
List.java
public class List extends ListActivity
{
ListView list1;
LoginDataBaseAdapter loginDataBaseAdapter;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
loginDataBaseAdapter=new LoginDataBaseAdapter(this);
loginDataBaseAdapter=loginDataBaseAdapter.open();
ArrayList<String> from=loginDataBaseAdapter.getFriends();
ArrayAdapter<String> adapter=new ArrayAdapter<String>
(this,android.R.layout.simple_list_item_1,from);
list1.setAdapter(adapter);
}}
Получение CursorIndexOutOfBoundException.
введите код своей базы данных – SathishKumar
Проверьте свой указатель на курсор 'cursor.count' – nilkash