2017-07-19 17 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クラスの中にあると仮定し、問題を起こさずに少なくとも1回あなたのアプリケーションをデバッグ/実行しています。したがって、この時点では、あなたのアプリケーションはOnCreate()メソッドを起動しません。 OnCreate()メソッドを起動するには、アプリケーションをアンインストールしてインストールするか、アプリケーションで「データを消去」を実行します。 –

+0

それを試して、それは動作します!ありがとうございました! – Albert

関連する問題