【发布时间】:2015-06-16 02:00:57
【问题描述】:
image 我想获取我正在使用此代码获取所需数据的整行,但它在 temp_address1 处给了我空指针异常这是代码
如提到的图像中,我想获得整行匹配的电话号码。我怎样才能达到这个结果?电话号码是这里的主键 公共类 SqliteHelpers 扩展 SQLiteOpenHelper {
public static final String DATABASE_NAME = "NotesDatabase.db";
public static final int DATABASE_VERSION = 1;
public static final String TABLE_NAME = "notesDb";
public static final String NUMBER = "PhoneNumber";
public static final String NOTES = "Note";
public static final String PICTURE = "Picture";
public static final String TABLE_CREATE =
"CREATE TABLE " +
TABLE_NAME + "(" +
NUMBER + " TEXT PRIMAY KEY , " +
NOTES + " TEXT UNIQUE , " +
PICTURE + " TEXT " + " ) ";
public SqliteHelpers(Context context) {
super(context, DATABASE_NAME, null, 1);
getReadableDatabase();
getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TABLE_CREATE);
Log.i("DBHelpers", "table created");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME);
}
第二类是
公共类 DataBaseHelpers {
private SQLiteDatabase mDbHelper;
private SqliteHelpers mSqliteHelper;
private Cursor mCursor;
public DataBaseHelpers(Context context) {
mSqliteHelper = new SqliteHelpers(context);
}
void createNewEntry(String column, String value) {
ContentValues values = new ContentValues();
values.put(column, value);
mDbHelper.insert(SqliteHelpers.TABLE_NAME, null, values);
Log.i("Sqlite", "create entry");
}
void deleteItem(String column, String value) {
mDbHelper.delete(SqliteHelpers.TABLE_NAME, column + " = ?", new String[]{value});
Log.i("sqlite", "Entry deleted");
}
void closeDatabase() {
mSqliteHelper.close();
Log.i("sqlite", "close database");
}
void retrieveDate(String value) {
String query = "SELECT * FROM notesDb WHERE PhoneNumber ="
+ value;
mCursor = mDbHelper.rawQuery(query, null);
if (mCursor.moveToFirst()) {
do {
String temp_address = mCursor.getString(mCursor.getColumnIndex(SqliteHelpers.NUMBER));
String temp_address1 = mCursor.getString(mCursor.getColumnIndex(SqliteHelpers.NOTES));
System.out.println(temp_address);
System.out.println(temp_address1);
} while (cursor.moveToNext());
}
mDbHelper.close();
}
【问题讨论】:
-
=?语法是什么意思?你确定这不是语法错误吗? -
没有语法错误查询工作正常 {value } 将替换为 ?.
-
你有 _id 行吗?你没有这个行数据库可能会出错。而且您必须提供从 sqlite 阅读器而不是 Excel 中创建数据库或打印屏幕的代码
标签: android database sqlite android-sqlite