Android 游标索引越界异常
在打开一个游标后,我得到一个游标索引越界错误 数据库请问有谁能告诉我如何打开现有的数据库 sqllite-Android。我想在数据库上启动select查询,然后 检索一些信息Android 游标索引越界异常,android,database,sqlite,cursor,Android,Database,Sqlite,Cursor,在打开一个游标后,我得到一个游标索引越界错误 数据库请问有谁能告诉我如何打开现有的数据库 sqllite-Android。我想在数据库上启动select查询,然后 检索一些信息 public void getPatient(SQLiteDatabase db, String name) { // TODO Auto-generated method stub db=this.getReadableDatabase(); //db.open();
public void getPatient(SQLiteDatabase db, String name) {
// TODO Auto-generated method stub
db=this.getReadableDatabase();
//db.open();
System.out.println("in cursooooooooorrrrrrrrr");
Cursor c = db.rawQuery("SELECT * from table_patient WHERE COL_Name"+"=?",
new String []{name});
//c.moveToFirst();
int index = c.getColumnIndex("COL_FirstName");
System.out.println("First Name : ----------- "+c.getString(index));
c.close();
}
您必须取消注释c.moveToFirst() 这里有一个例子:
public WhoisEntry[] getAllEntries(){
SQLiteDatabase db = getReadableDatabase();
String sql = "SELECT * FROM domains_events";
Cursor result = db.rawQuery(sql, null);
WhoisEntry[] resultArray = new WhoisEntry[result.getCount()];
int i=0;
result.moveToFirst();
while (i< result.getCount()){
long date = result.getLong(result.getColumnIndex("exp_date")) * 1000;
String domainName = result.getString(result.getColumnIndex("domainname"));
resultArray[i] = new WhoisEntry(domainName, new Date(date));
//resultArray[i].domainName =
//resultArray[i].expirationDate = result.getString(result.getColumnIndex("exp_date"));
String name = result.getString(result.getColumnIndex("domainname"));
i++;
}
return resultArray;
}
public WhoisEntry[]getAllEntries(){
SQLiteDatabase db=getReadableDatabase();
String sql=“从域中选择*\u事件”;
游标结果=db.rawQuery(sql,null);
WhoisEntry[]resultArray=新的WhoisEntry[result.getCount()];
int i=0;
result.moveToFirst();
而(i
这样做:
int index = 0;
if(c.moveToFirst())
index = c.getColumnIndex("COL_FirstName");
其打印索引为0。请告诉我如何检查是否打开了正确的数据库,以及数据库中是否有数据看起来您的查询没有返回任何记录。尝试如下更改查询:
Cursor c=db.rawQuery(“从表中选择*COL\u Name like?”,新字符串[]{Name})代码>