android - Sqlite数据库查询编写

标签 android database sqlite

我正在尝试编写一个查询以从 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();
    }
  }
}

最佳答案

在尝试使用 getInt() 获取 int 之前,您需要放置 cursor.moveToNext() 或 cursor.moveToFirst()。将它放在 if 语句中,因为游标中可能没有结果。

关于android - Sqlite数据库查询编写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9348124/

相关文章:

mysql - mysqldump 命令不起作用

php - PHP表单未插入MySQL数据库

c# - ASP.NET 和 C# 用数据库中的数据填充表格

ios - 在 Swift 中使用 FMDB 打开数据库

java - 如何在android中识别同一个类?

java - 无法解析符号 "Place.Field"

SQL - 在计划中查找开放空间

c# - 如何在 Fluent-NHibernate 中级联插入父级、子级和组合列表

java - 其他线程中的 IO 操作阻塞了我的 UI 线程?

android - 从 Preferences ListFragment 中以编程方式创建的 PreferenceScreen 中删除填充