很长一段时间后你好人,我在这里发布任何查询。我得到下面的代码空指针异常错误: -在Android中创建和从数据库中获取数据时获取NullPointer异常错误
public class DBAdapter {
int id = 0;
public static final String KEY_ROWID = "_id";
public static final String KEY_FNAME = "FirstName";
public static final String KEY_LNAME = "LastName";
public static final String KEY_EMAILID = "Email";
public static final String KEY_PASSWORD = "Password";
private static final String TAG = "DBAdapter";
private static final String DATABASE_NAME = "UserDetail";
private static final String DATABASE_TABLE = "tblUserDetail";
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_CREATE = "create table tblUserDetail (_id integer primary key autoincrement, "
+ "FirstName text not null, LastName text, Email text not null, Password text not null);";
private final Context context;
private DatabaseHelper DBHelper;
private SQLiteDatabase db;
public DBAdapter(Context ctx){
this.context = ctx;
DBHelper = new DatabaseHelper(ctx);
}
private static class DatabaseHelper extends SQLiteOpenHelper{
public DatabaseHelper(Context context) {
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
Log.w(TAG, "Upgrading database version from"+ oldVersion +
"to"+ newVersion +", which will destroy all old data");
db.execSQL("DROP TABLE IF EXIST tblUserDetail");
onCreate(db);
}
}
public DBAdapter open() throws SQLException{
db = DBHelper.getWritableDatabase();
return this;
}
public void close(){
DBHelper.close();
}
public long insertData(String fName,String lName, String emailId, String password){
ContentValues intialValues = new ContentValues();
intialValues.put(KEY_FNAME, fName);
intialValues.put(KEY_LNAME, lName);
intialValues.put(KEY_EMAILID, emailId);
intialValues.put(KEY_PASSWORD, password);
return db.insert(DATABASE_TABLE, null, intialValues);
}
public String getAllEntries()
{
SQLiteDatabase database = DBHelper.getReadableDatabase();
Cursor cursor = database.rawQuery(
"SELECT FirstName FROM tblUserDetail WHERE _id = 1", null);
if(cursor.moveToFirst()) {
return cursor.getString(0);
}
return cursor.getString(0);
}
}
我呼吁点击一个按钮insertData
和getAllEntries
: -
Submit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// Toast toast = Toast.makeText(getApplicationContext(), "cliecked on submit button", Toast.LENGTH_LONG);
// toast.show();
String str;
try{
db.insertData(etFN.getText().toString(), etLN.getText().toString(), etEI.getText().toString(), etPS.getText().toString());
str = db.getAllEntries();
Toast toast = Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG);
toast.show();
}
catch(Exception ex){
Context context = getApplicationContext();
CharSequence text = ex.toString();
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
}
});
请帮我摆脱这个空指针异常错误的每一个帮助将不胜感激。
我收到db.insertData()
行的错误。
哪一行是抛出异常? –
你可以粘贴你的堆栈跟踪吗?我们需要看看究竟是抛出这个异常。 – osayilgan
请发布您的logcat错误 – dipali