如何在 sqlite 数据库(在 android 中)上运行 sql 语句并获取查询结果?我需要确定查询是否已执行。
我想出了:
db.execSQL(sql);
但这是一个无效函数。
我从数据库中获取 query_string,所以我不知道是插入或更新或删除语句。我确信它不会是一个选择语句。
如何在 sqlite 数据库(在 android 中)上运行 sql 语句并获取查询结果?我需要确定查询是否已执行。
我想出了:
db.execSQL(sql);
但这是一个无效函数。
我从数据库中获取 query_string,所以我不知道是插入或更新或删除语句。我确信它不会是一个选择语句。
尝试这样的事情:
public String insertQuery(String sql) {
try{
db.execSQL(sql);
}
catch (SQLException ex){
return ex.toString();
}
return null;
}
如果你使用SQLiteDatabase
,你可以做两件事:
1.) *无结果查询 ( UPDATE
, DELETE
, DROP
,ALTER
等...) *
这些查询不返回任何值,它们会修改数据库。执行此操作的函数称为execSQL(String)
。你可以简单地给它一个字符串格式的 SQL 查询,它会执行它。
2.) *查询结果 ( SELECT
) *
这些查询将返回一个Cursor
对象。使用游标,您可以迭代结果集,就像使用任何其他迭代器一样。光标将始终“包含”实际结果集中的单行,您可以调用移动函数来前进/后退。执行此操作的函数称为rawQuery(String, String [])
。您也可以使用该query()
函数,使用此函数,您必须键入更少的 SQL。
一个例子:
Cursor cursor = database.rawQuery("SELECT * FROM yourtable", null);
for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext())
{
/*this means you want to get from the current row a String
(CHAR, VARCHAR or TEXT) value from the 0th (first) column*/
String str = cursor.getString(0);
/*This means, that you want to get from the current row an
integer value from the 1st (second) column*/
int i = cursor.getInt(1);
...
}