Java 如何从sqlite数据库访问数据?
我正在尝试访问存储在sqlite数据库中的数据。我正在尝试使用游标访问数据。我编写了函数getInformation()来访问数据。我的问题是,当我尝试调用此函数时,它会抛出java.lang.NullPointerException错误。我不知道为什么会这样做。有人能帮我解决此错误吗 E/AndroidRuntime:致命异常:主进程:com.edkul.vimal.edkul,PID:2006 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.database.Cursor com.edkul.vimal.edkul.DatabaseHandler.getInformation(com.edkul.vimal.edkul.DatabaseHandler)” 下面是我从数据库获取数据的函数:Java 如何从sqlite数据库访问数据?,java,android,sqlite,Java,Android,Sqlite,我正在尝试访问存储在sqlite数据库中的数据。我正在尝试使用游标访问数据。我编写了函数getInformation()来访问数据。我的问题是,当我尝试调用此函数时,它会抛出java.lang.NullPointerException错误。我不知道为什么会这样做。有人能帮我解决此错误吗 E/AndroidRuntime:致命异常:主进程:com.edkul.vimal.edkul,PID:2006 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“an
<pre><code>
public Cursor getInformation(DatabaseHandler db){
SQLiteDatabase sq = db.getWritableDatabase();
String[] columnNames ={"StudentName","StudentEmail","StudentPassword",
"StudentConfirmPassword","InstituteName","ContactInfo"};
String tableName = "StudentRecords";
Cursor cr = sq.query(tableName,columnNames,null,null,null,null,null);
return cr;
}
</code></pre>
try
{
AndroidOpenDbHelper queryDbHelperObj = new AndroidOpenDbHelper(this);
SQLiteDatabase sqLiteDatabase = queryDbHelperObj.getReadableDatabase();
Cursor cursor = sqLiteDatabase.rawQuery(SQL_SELECT_QUERY,null);
if(cursor != null)
{
if(cursor.moveToFirst())
{
do
{
String OriginDB = cursor.getString(cursor.getColumnIndex("Origin"));
String DestinationDB = cursor.getString(cursor.getColumnIndex("Destination"));
}while(cursor.moveToNext());
}
}
}
catch(Exception err)
{
err.printStackTrace();
}
我试图调用此函数的部分代码:
您可以通过这种方式访问SQLite数据库中的数据--
希望这有帮助 什么是
dbHandler
?你在什么地方初始化过吗?我没有看到。谢谢你的回复。我已经编写了一个类名DatabaseHandler,在这里我编写了所有函数,比如创建表、删除表、向表中添加数据以及从表中获取数据。dbhandler是DatabaseHandler类型变量,可以访问所有函数。dbhandler
为NULL,这就是为什么会出现此异常。无论如何,我也给了你一个答案。希望这对你有帮助。谢谢!!我会试试。@vimal mishra——一旦你实施了这个,请告诉我们。:)谢谢谢谢@Saumik它真的解决了我的问题。非常感谢
try
{
AndroidOpenDbHelper queryDbHelperObj = new AndroidOpenDbHelper(this);
SQLiteDatabase sqLiteDatabase = queryDbHelperObj.getReadableDatabase();
Cursor cursor = sqLiteDatabase.rawQuery(SQL_SELECT_QUERY,null);
if(cursor != null)
{
if(cursor.moveToFirst())
{
do
{
String OriginDB = cursor.getString(cursor.getColumnIndex("Origin"));
String DestinationDB = cursor.getString(cursor.getColumnIndex("Destination"));
}while(cursor.moveToNext());
}
}
}
catch(Exception err)
{
err.printStackTrace();
}