我不确定为什么这会使我的应用程序崩溃。我已经导入了在 sqlite 上创建的数据库,现在我只想从中读取信息。
这是我的代码
public class goodwillDatabase {
private static final String DATABASE_NAME="goodwill";
private SQLiteDatabase ourDatabase;
//set up variables
static final String candidate_id = "_id";
static final String candidate_name = "name";
static final String candidate_street_address = "email";
//set up the table...store different tables in database
private static final String DATABASE_TABLE = "candidate";
private static final int DATABASE_VERSION = 1;
//create instance of this class
//creates, opens and closes database
private DbHelper ourHelper;
private final Context ourContext;
//create database on a different thread
private static class DbHelper extends SQLiteOpenHelper{
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
//first time we ever create database, this is called
@Override
public void onCreate(SQLiteDatabase db) {
}
//if already created, just update
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,
int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS" + DATABASE_TABLE);
onCreate(db);
}
}
public goodwillDatabase(Context c){
//make context of this class equal to whatever is being passed in
ourContext = c;
}
//opens database
//sql excpetion for the try catch
public goodwillDatabase open() throws SQLException{
//create a new helper, pass in context from the method above
ourHelper = new DbHelper(ourContext);
ourDatabase = ourHelper.getWritableDatabase();
return this;
}
//closes the class...sqlite helper, dbhelper
public void close(){
ourHelper.close();
}
public String getData() {
// TODO Auto-generated method stub
//create a new helper, pass in context from the method above
String [] columns = new String []{ candidate_name, candidate_street_address};
Cursor d = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
String result = " ";
//String[] result = columns;
/*
int iRow = c.getColumnIndex(canadiate_id);
int iName = c.getColumnIndex(canadiate_name);
int iStreet = c.getColumnIndex(canadiate_street_address);*/
/*
//start at the beginning, keep moving if you haven't made it to the last
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext())
{
result = result + c.getString(iRow) + " " + c.getString(iName) +
" " + c.getString(iStreet) + "\n";
}
*/
return result;
}
}
*Cursor d = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null); * 行是它崩溃的地方。是光标不知道指向哪里的东西吗?我对数据库或编程不是非常熟悉,所以您能给我的任何帮助将不胜感激!