如何使用此演示从数据库中获取数据?

时间:2012-02-01 11:30:00

标签: android database sqlite database-design android-ndk

我正在使用this example在amy android app中创建数据库。

但是这里没有给出如何从数据库中获取数据。

我的字段如下:

_id

名称

地址

现在我想显示数据库中的所有可用名称。

我知道我必须使用Select查询。但我必须使用它,我不知道。所以请任何研究帮助e。

感谢。

3 个答案:

答案 0 :(得分:2)

Here's关于android数据的精彩教程。该教程涵盖了数据库的所有方面。

答案 1 :(得分:1)

您可以从我的电脑下载一个示例。这是链接。它仅适用于今天。我也给你如下代码。

package com.collabera.labs.sai.db;

import java.util.ArrayList;

import android.app.ListActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;

public class CRUDonDB extends ListActivity {

    private final String SAMPLE_DB_NAME = "myFriendsDb";
    private final String SAMPLE_TABLE_NAME = "friends";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        ArrayList<String> results = new ArrayList<String>();
        SQLiteDatabase sampleDB = null;

        try {
            sampleDB =  this.openOrCreateDatabase(SAMPLE_DB_NAME, MODE_PRIVATE, null);

            sampleDB.execSQL("CREATE TABLE IF NOT EXISTS " +
                    SAMPLE_TABLE_NAME +
                    " (LastName VARCHAR, FirstName VARCHAR," +
                    " Country VARCHAR, Age INT(3));");

            sampleDB.execSQL("INSERT INTO " +
                    SAMPLE_TABLE_NAME +
                    " Values ('Makam','Sai Geetha','India',25);");
            sampleDB.execSQL("INSERT INTO " +
                    SAMPLE_TABLE_NAME +
                    " Values ('Chittur','Raman','India',25);");
            sampleDB.execSQL("INSERT INTO " +
                    SAMPLE_TABLE_NAME +
                    " Values ('Solutions','Collabera','India',20);");

            Cursor c = sampleDB.rawQuery("SELECT FirstName, Age FROM " +
                    SAMPLE_TABLE_NAME +
                    " where Age > 10 LIMIT 5", null);

            if (c != null ) {
                if  (c.moveToFirst()) {
                    do {
                        String firstName = c.getString(c.getColumnIndex("FirstName"));
                        int age = c.getInt(c.getColumnIndex("Age"));
                        results.add("" + firstName + ",Age: " + age);
                    }while (c.moveToNext());
                } 
            }

            this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,results));

        } catch (SQLiteException se ) {
            Log.e(getClass().getSimpleName(), "Could not create or Open the database");
        } finally {
            if (sampleDB != null) 
                sampleDB.execSQL("DELETE FROM " + SAMPLE_TABLE_NAME);
                sampleDB.close();
        }
    }
}

答案 2 :(得分:1)

将您的方法写在DataBaseHelper中,就像这样

public ArrayList<User> getUsersList() {

        ArrayList<User> userList = null;
        Cursor cursor = null;

        try {

            String queryString = "SELECT _id , name, address, type FROM User";

            cursor =  myDataBase.rawQuery(queryString, null);

            if (cursor != null && cursor.moveToFirst()) {
                userList = new ArrayList<User>();
                do {
                    User nextUser = new User(cursor.getInt(0),
                            cursor.getString(1), cursor.getString(2) , cursor.getString(3));
                    userList.add(nextUser);
                } while (cursor.moveToNext());
            }
        } catch (Exception e) {
            e.printStackTrace();
            userList = null;
        } finally {
            if (cursor != null && !cursor.isClosed()) {
                cursor.deactivate();
                cursor.close();
                cursor = null;
            }
            if(myDataBase != null){
                myDataBase.close();
            }
        }
        return userList;
    }