2017-07-19 32 views
-1

我在將數據存儲在數據庫中時遇到問題。這是插入文本值數據庫的方法:Android值不會插入到數據庫中

private void openVerify() { 
    HashMap <String, String> queryValues = new HashMap<String, String>(); 
    queryValues.put("UserEmail", txtNewEmail.getText().toString()); 
    queryValues.put("FirstName", txtNewFirstName.getText().toString()); 
    queryValues.put("LastName", txtNewLastName.getText().toString()); 
    queryValues.put("Password", txtNewPassword.getText().toString()); 
    queryValues.put("PhoneNo", txtNewPhoneNumber.getText().toString()); 
    queryValues.put("Address", txtNewAddress.getText().toString()); 
    int success = (int)db.insertCustomer(queryValues); 

    if (success > 0) 
     Toast.makeText(getApplicationContext(), "Code has been sent!", Toast.LENGTH_LONG).show(); 

     openVerification(); 
     finish(); 

} 

這是從方法插入數據的SQL上述這是另一個類:

public void onCreate(SQLiteDatabase db) { 
    String query = "CREATE TABLE tblUsers (UserID INTEGER PRIMARY KEY AUTOINCREMENT, UserEmail TEXT" + 
      "FirstName TEXT, LastName TEXT, Password TEXT, PhoneNo TEXT, Address TEXT) "; 
    db.execSQL(query); 
} 

public int insertCustomer(HashMap<String, String> queryValues){ 

    SQLiteDatabase database = this.getWritableDatabase(); 
    ContentValues values = new ContentValues(); 

    values.put("UserEmail",queryValues.get("UserEmail")); 
    values.put("FirstName",queryValues.get("FirstName")); 
    values.put("LastName",queryValues.get("LastName")); 
    values.put("Password",queryValues.get("Password")); 
    values.put("PhoneNo",queryValues.get("PhoneNo")); 
    values.put("Address",queryValues.get("Address")); 

    int success = (int) database.insert("tblUsers", null, values); 
    database.close(); 
    return success; 
} 

這有什麼錯在我的代碼?

+0

爲什麼mysql標記?你有什麼異常嗎? – Jens

+0

對不起,當它按照建議顯示時,不小心點擊它。不,我沒有得到任何例外。 – Albert

回答

0
String query = "CREATE TABLE tblUsers (UserID INTEGER PRIMARY KEY AUTOINCREMENT, UserEmail TEXT," + 
     "FirstName TEXT, LastName TEXT, Password TEXT, PhoneNo TEXT, Address TEXT) "; 

你錯過後USEREMAIL TEXT逗號?

+0

我試過把它,但它沒有工作?我需要先刪除數據庫嗎? – Albert

+0

我假設OnCreate()在您自己定製的SQLiteOpenHelper類中,並且您至少有一次調試/運行您的應用程序沒有問題。所以,在這個時候,你的應用程序不會觸發OnCreate()方法。爲了觸發OnCreate()方法,您可以卸載並安裝應用程序,也可以在應用程序上執行「清除數據」。 –

+0

試過了,它的工作原理!謝謝! – Albert