我正在尝试编写一个查询来从SQLite数据库中检索数据。我想在文本框中打印查询结果。所以我对游标使用了getint()
方法。以下是我的代码。它不会在我的Android模拟器中启动。这是编写查询的正确方法吗?它没有显示任何错误。
import android.app.Activity;
import android.os.Bundle;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.*;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class SQLDemo1Activity extends Activity {
private SQLiteDatabase db;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try{
db= SQLiteDatabase.openDatabase(
"/data/data/cis493.sqldatabases/databases/multilinguialdatabase.sqlite",
null,
SQLiteDatabase.CREATE_IF_NECESSARY);
db.beginTransaction();
Cursor cursor = db.query(
"colors" /* table */,
new String[] { "ID" } /* columns */,
"English = ?" /* where or selection */,
new String[] { "green" } /* selectionArgs i.e. value to replace ? */,
null /* groupBy */,
null /* having */,
null /* orderBy */
);
int id = cursor.getInt(0);
TextView met = (TextView) findViewById(R.id.t1);
met.setText(id);
db.endTransaction();
db.close();
}
catch(SQLiteException e) {
Toast.makeText(this, e.getMessage(), 1).show();
}
}
}
答案 0 :(得分:1)
在尝试使用getInt()获取int之前,需要放置cursor.moveToNext()或cursor.moveToFirst()。将它放在if语句中,因为游标中可能没有结果。
答案 1 :(得分:0)
要在Android Sqllite中编写查询,需要使用以下某些参数:
//查询用户词典并返回结果 mCursor = getContentResolver()。query(
URI // The content URI of the words table
mProjection, // The columns to return for each row
mSelectionClause // Selection criteria
mSelectionArgs, // Selection criteria
mSortOrder); // The sort order for the returned rows
有关详细信息,请阅读Android开发人员网站: http://developer.android.com/guide/topics/providers/content-provider-basics.html