从Sqlite数据库中获取数据

时间:2016-11-11 07:05:58

标签: android

我正在创建应用程序,其中我注册用户并将用户的信息存储在数据库中,所以我在数据库中创建了数据库和存储值,但我不知道如何从数据库中获取数据并在textview中显示?使用以下查询获取数据,但它有错误。什么是正确的方法?

 public void insertEntry(String fname, String lname, String gen,String weight)
{
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put("firstname", fname);
    values.put("lastname", lname);
    values.put("gender", gen);
    values.put("weight",weight);
}

public Cursor fetchData()
{
    SQLiteDatabase mDB = dbHelper.getWritableDatabase();

    return mDB.rawQuery("SELECT * FROM  Register WHERE firstname=? lastname =?"  , null);
}

使用此方法在不同活动的textview上设置提取的值

Cursor name = sqliteDataBase.fetchData();
    tv_name.setText((CharSequence) name);

3 个答案:

答案 0 :(得分:1)

试试这个,

try {
    SQLiteDatabase mDB = dbHelper.getReadableDatabase();
        String selectQuery = "SELECT * FROM  Register WHERE firstname= "+first+" lastname =" + last + ";";

                cursor = db.rawQuery(selectQuery, null);

                if (cursor != null && cursor.getCount() > 0) {
                    if (cursor.moveToFirst()) {
                     String firstName = cursor.getString(cursor.getColumnIndex("firstname")));
                    }
                }
} catch(Exception e) {
e.printSTackTrace();
} finally {
if (cursor != null) {
cursor.close();
}
}

答案 1 :(得分:0)

  public String fecthResults()
 {
   String name = null;

    SQLiteDatabase sqLiteDatabase = getReadableDatabase();
    Cursor cursor = sqLiteDatabase.query(TABLE_NAME, null, null, null, null, null, null);
    if (cursor.moveToFirst()) {
        do {
           name = cursor.getString(cursor.getColumnIndex("firstname")
        } while (cursor.moveToNext());
        cursor.close();
    }
    sqLiteDatabase.close();
    return name;

获取名称,然后将其直接设置为texView

答案 2 :(得分:0)

Cursor是一个接口,提供对查询返回的结果集的随机读写访问。它包含多行数据,这些数据可以通过For循环的帮助轻松处理。

让我们举一个例子来理解这个过程。假设您需要访问列名称中的数据" col_1"并在TextView中显示数据。该过程的For循环如下。

for (cursor.moveToNext()) {
    textView.setText(cursor.getString(cursor.getColumnIndex("col_1")));
}

现在,如果我们只需要一个值(仅来自一个记录或元组),那么我们可以选择退出For循环并更改代码,如下所示。

if (cursor.moveToFirst()) {
    textView.setText(cursor.getString(cursor.getColumnIndex("col_1")));
}

请务必在使用光标后关闭光标。

要关闭光标,请使用以下代码行。

cursor.close();

有关详细信息,请访问以下链接:

https://developer.android.com/reference/android/database/Cursor.html

https://developer.android.com/training/basics/data-storage/databases.html#ReadDbRow