我尝试从 sqlite 数据库调用 user_id,但收到此错误
android.database.sqlite.SQLiteException: unknown error (code 0 SQLITE_OK): Queries can be performed using SQLiteDatabase query or rawQuery methods only. at android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount(Native Method)
public Database user_id(){
SQLiteDatabase db = getReadableDatabase();
String query = String.format("SELECT user_id FROM OrderDetails ;");
db.execSQL(query);
Cursor c = db.rawQuery(query, null);
if (c != null && c.moveToFirst()) {
c.moveToFirst();
}
return user_id();
}
请不要推荐其他解决方案,因为我已经坚持了一天多了,并且我尝试了 stackoverflow 和在线中提供的几乎所有解决方案
最佳答案
public void execSQL (String sql)
Execute a single SQL statement that is NOT a SELECT or any other SQL statement that returns data.
所以删除这一行:
db.execSQL(query);
方法 execSQL()
不用于执行获取行的查询,例如 SELECT 语句。您可以将它与 INSERT、UPDATE、CREATE 等一起使用。
另外,我认为您希望将用户的 id 作为 Cursor
返回,对吗?
那么为什么:
public Database user_id()
这会返回一个数据库对象(无论它是什么)。
将方法更改为:
public Cursor user_id(){
SQLiteDatabase db = getReadableDatabase();
String query = "SELECT user_id FROM OrderDetails";
Cursor c = db.rawQuery(query, null);
return c;
}
关于java - 尝试从 sqlite 调用 user_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56245223/