我正在使用this example在amy android app中创建数据库。
但是这里没有给出如何从数据库中获取数据。
我的字段如下:
_id
名称
地址
型
现在我想显示数据库中的所有可用名称。
我知道我必须使用Select查询。但我必须使用它,我不知道。所以请任何研究帮助e。
感谢。
答案 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;
}