如何在sqlite数据库(在android中)运行sql语句并获取查询结果?我需要确定查询是否已执行。
我想出了:
db.execSQL(sql);
但这是一个无效功能。
我从数据库中获取query_string,所以我不知道是插入还是更新或删除语句。我肯定知道它不会是一个选择声明。
答案 0 :(得分:6)
尝试这样的事情:
public String insertQuery(String sql) {
try{
db.execSQL(sql);
}
catch (SQLException ex){
return ex.toString();
}
return null;
}
答案 1 :(得分:2)
如果您使用的是SQLiteDatabase
,则可以执行以下两项操作:
1。) * 查询无结果(UPDATE
,DELETE
,DROP
,ALTER
等...)< / EM> *
这些查询不返回任何值,它们会修改数据库。执行此操作的功能称为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);
...
}