SQLite将信息添加到数据库

时间:2013-05-23 08:36:36

标签: android sqlite

我不知道我的代码有什么问题。我想要做的是保存用户在数据库中输入的信息。请帮帮我。

这是传递用户输入的所有信息的代码。这是我的SignupActivity。

databaseAdapter.saveUserInfo(Lastname,Firstname,MiddleInitial,Username, Password);

现在,这是我的DatabaseAdapter中的代码,其中包含所有信息。

public long saveUserInfo(String Lastname, String Firstname,String MiddleInitial,String Username,String Password)
{
    ContentValues contentValues = new ContentValues();
    contentValues.put(Constants.DATABASE_COLUMN_FIRSTNAME, Firstname);
    contentValues.put(Constants.DATABASE_COLUMN_LASTNAME, Lastname);
    contentValues.put(Constants.DATABASE_COLUMN_MI, MiddleInitial);
    contentValues.put(Constants.DATABASE_COLUMN_USERNAME, Username);
    contentValues.put(Constants.DATABASE_COLUMN_PASSWORD, Password);
    return dbSqlite.insert(Constants.DATABASE_TABLE_USER_NAME_WITH_USERNAME_PASSWORD, null, contentValues);
}

我错过了什么吗?这是我的logcat中的错误

05-23 16:37:15.080: W/dalvikvm(18203): threadid=1: thread exiting with uncaught exception (group=0x402ac760)
05-23 16:37:15.085: E/AndroidRuntime(18203): FATAL EXCEPTION: main
05-23 16:37:15.085: E/AndroidRuntime(18203): java.lang.NullPointerException
05-23 16:37:15.085: E/AndroidRuntime(18203):    at com.example.customercare.SignUpActivity$1.onClick(SignUpActivity.java:65)
05-23 16:37:15.085: E/AndroidRuntime(18203):    at android.view.View.performClick(View.java:3131)
05-23 16:37:15.085: E/AndroidRuntime(18203):    at android.view.View$PerformClick.run(View.java:12035)
05-23 16:37:15.085: E/AndroidRuntime(18203):    at android.os.Handler.handleCallback(Handler.java:587)
05-23 16:37:15.085: E/AndroidRuntime(18203):    at android.os.Handler.dispatchMessage(Handler.java:92)
05-23 16:37:15.085: E/AndroidRuntime(18203):    at android.os.Looper.loop(Looper.java:132)
05-23 16:37:15.085: E/AndroidRuntime(18203):    at android.app.ActivityThread.main(ActivityThread.java:4123)
05-23 16:37:15.085: E/AndroidRuntime(18203):    at java.lang.reflect.Method.invokeNative(Native Method)
05-23 16:37:15.085: E/AndroidRuntime(18203):    at java.lang.reflect.Method.invoke(Method.java:491)
05-23 16:37:15.085: E/AndroidRuntime(18203):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
05-23 16:37:15.085: E/AndroidRuntime(18203):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
05-23 16:37:15.085: E/AndroidRuntime(18203):    at dalvik.system.NativeStart.main(Native Method)

3 个答案:

答案 0 :(得分:1)

我不知道dbSqlite在哪里被初始化, 也许你可以这样写。

//enter code here
public void save(Person person){
    SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put("name", person.getName());
    values.put("phone", person.getPhone());
    values.put("amount", person.getAmount());
    db.insert("person", null, values);
}

也许可以帮到你。

答案 1 :(得分:0)

java.lang.NullPointerException 

请确保您的dbSqlite正在打开。

答案 2 :(得分:0)

我添加了dbSqlite初始化。

public long saveUserInfo(String Lastname, String Firstname,String MiddleInitial,String   Username,String Password)
{
    dbSqlite = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(Constants.DATABASE_COLUMN_FIRSTNAME, Firstname);
    contentValues.put(Constants.DATABASE_COLUMN_LASTNAME, Lastname);
    contentValues.put(Constants.DATABASE_COLUMN_MI, MiddleInitial);
    contentValues.put(Constants.DATABASE_COLUMN_USERNAME, Username);
    contentValues.put(Constants.DATABASE_COLUMN_PASSWORD, Password);
    return dbSqlite.insert(Constants.DATABASE_TABLE_USER_NAME_WITH_USERNAME_PASSWORD, null, contentValues);
}