我创建了一个名为"TABLE1_NAME"
的Sqlite表,它只包含一个名为car_name的列;
在我的getdata()函数中,我在db查询中使用"ORDER BY RANDOM() LIMIT 1"
来获取具有随机位置的汽车名称,但是,结果始终存储为null。
请注意:字符串carname已被声明为全局变量。
这是我的代码:
public String getData()
{
sqLiteDatabase=this.getReadableDatabase();
Cursor cursor;
cursor= sqLiteDatabase.rawQuery("SELECT * FROM "+TABLE1_NAME+" ORDER BY RANDOM() LIMIT 1",null);
if(cursor!=null && cursor.moveToFirst())
{
carName=cursor.getString(cursor.getColumnIndex("car_name"));
cursor.close();
}
return carName; //carname=null --> null is being stored in carname
}
请指导我,我哪里出错了;感谢。
以下是我编辑的代码,在合并了您的所有建议后,结果仍为空:
public String getData()
{
String carName = null;
sqLiteDatabase=this.getReadableDatabase();
Cursor cursor;
cursor= sqLiteDatabase.rawQuery("SELECT * FROM "+TABLE1_NAME+" ORDER BY RANDOM() LIMIT 1",null);
if(cursor!=null && cursor.moveToFirst() && !cursor.isAfterLast())
{
carName=cursor.getString(cursor.getColumnIndexOrThrow("car_name"));
cursor.close();
}
return carName;
}
这就是我首先将数据插入数据库的方式:
public void insertCarData(String[] cars)
{
sqLiteDatabase=this.getReadableDatabase();
ContentValues cv = new ContentValues();
for(int i=0;i<cars.length;i++)
{
cv.put(TABLE_CAR_NAME,cars[i]);
}
sqLiteDatabase.insert(TABLE1_NAME,null,cv);
sqLiteDatabase.close();
}
问题可能出在这里。感谢。