2012-05-24 43 views
1
public class DBAdapter { 
    public static final String COLUMN_ID = "ID"; 
    public static final String COLUMN_NAME = "NAME"; 
    public static final String COLUMN_SURNAME = "SURNAME"; 
    public static final String COLUMN_DATE_OF_BIRTH = "DateOfBirth"; 
    public static final String COLUMN_ADDRESS = "HomeAddress"; 
    public static final String COLUMN_EMAIL = "EmailNO"; 

    public static final String COLUMN_PHONE_NUMBER = "PhoneNumber"; 
    public static final String COLUMN_CITY = "City"; 
    public static final String COLUMN_PTYE_PAYMENT = "TypePayment"; 
    public static final String COLUMN_SHIPPING_TYPE = "ShippingType"; 
    public static final String COLUMN_CARD_NUMBER = "CardNumber"; 
    public static final String COLUMN_username = "Username"; 
    public static final String COLUMN_Password = "Passwords"; 

    public static final String TAG = "DBAdapter"; 

    private static final String DATABASE_NAME = "Computer_Info.db"; 
    private static final String USERS_TABLE = "DetailsCustomer"; 
    private static final int DATABASE_VERSION = 3; 

private final Context context; 

private DatabaseHelper DBHelper; 
private SQLiteDatabase db; 

public DBAdapter (Context ctx) 
{ 
    this.context = ctx; 
    DBHelper = new DatabaseHelper(context); 
} 

private static class DatabaseHelper extends SQLiteOpenHelper 
{ 
    DatabaseHelper(Context context) { 
     super (context,DATABASE_NAME,null,DATABASE_VERSION); 
    } 

@Override 
public void onCreate(SQLiteDatabase db) 
{ 



try { 
      //db.execSQL(DATABASE_CREATE);   
     db.execSQL("CREATE TABLE "+ USERS_TABLE + 
        "("+ COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
        COLUMN_NAME + " TEXT, " + COLUMN_SURNAME +" TEXT, " +COLUMN_DATE_OF_BIRTH+ 

        " TEXT NOT NULL, " + COLUMN_ADDRESS + " TEXT, " + COLUMN_EMAIL +" TEXT, " + 
        COLUMN_PHONE_NUMBER + " TEXT, "+ COLUMN_CITY + " TEXT, "+ COLUMN_PTYE_PAYMENT + 
        " TEXT, " + COLUMN_CARD_NUMBER + " TEXT,"+ COLUMN_username + "TEXT ," + COLUMN_Password +" TEXT)"); 

} 



catch (SQLException e) { 
      e.printStackTrace(); 

     } 
    } 

public long insertRecord(String NAME, String SURNAME, String DateOfBirth, 
     String HomeAddress,String EmailNO, String PhoneNumber, String City, 
     long l, long m,String CardNumber,String Username, String Passwords) { 
    { 


      ContentValues initialValues = new ContentValues(); 


    initialValues.put(COLUMN_NAME,NAME); 
    initialValues.put(COLUMN_SURNAME,SURNAME); 
    initialValues.put(COLUMN_DATE_OF_BIRTH,DateOfBirth); 
    initialValues.put(COLUMN_ADDRESS,HomeAddress); 
    initialValues.put(COLUMN_EMAIL,EmailNO); 
    initialValues.put(COLUMN_PHONE_NUMBER,PhoneNumber); 
    initialValues.put(COLUMN_CITY,City); 
    initialValues.put(COLUMN_PTYE_PAYMENT,l); 
    initialValues.put(COLUMN_SHIPPING_TYPE,m); 
    initialValues.put(COLUMN_CARD_NUMBER,CardNumber); 
    initialValues.put(COLUMN_username,Username); 
    initialValues.put(COLUMN_Password,Passwords); 

      return db.insert(USERS_TABLE,null, initialValues); 

     } 

    } 

public long insertRecord(String nAME, String sURNAME, String dateOfBirth, 
     String homeAddress, String emailNO, String phoneNumber, String city, 
     String string, String string2, String cardNumber, String Username, String Passwords) { 
    return 0; 

    } 

還我的活動類--------------- -----------如何解決錯誤:sqlite返回:錯誤代碼= 1,msg =表DetailsCustomer沒有列名用戶名,

public void buttonRegister(View v) 
    { 
     Log.d("test", "adding"); 

     //get data from form 
     EditText nametext = (EditText)findViewById(R.id.editTextName); 
     EditText Surnametext = (EditText)findViewById(R.id.editTextSurname); 
     EditText DOBtext = (EditText)findViewById(R.id.editTextDateBirth); 
     EditText Adresstext = (EditText)findViewById(R.id.editTexAddress); 
     EditText EmailNotext = (EditText)findViewById(R.id.editTeEmail); 
     EditText Phonetext = (EditText)findViewById(R.id.editTexPhone); 
     EditText Citytext = (EditText)findViewById(R.id.editTextCITY); 
     Spinner PaymentSpinner = (Spinner)findViewById(R.id.spinnerPayment); 
     Spinner ShippngMethod = (Spinner)findViewById(R.id.spinnerShipping); 
     EditText CardNumbertext = (EditText)findViewById(R.id.editTextCARDNUMBER); 
     EditText usernametext = (EditText)findViewById(R.id.txtusername); 
     EditText pasword = (EditText)findViewById(R.id.editTexpassword); 




db.open(); 
     long id = db.insertRecord(nametext.getText().toString(), Surnametext.getText().toString(), 
            DOBtext.getText().toString(),Adresstext.getText().toString(),EmailNotext.getText().toString(), 
            Phonetext.getText().toString(), Citytext.getText().toString(), 
            PaymentSpinner.getSelectedItemId(), ShippngMethod.getSelectedItemId(), CardNumbertext.getText().toString(), 
            usernametext.getText().toString(), pasword.getText().toString()); 




db.close(); 

     nametext.setText(""); 
     Surnametext.setText(""); 
     DOBtext.setText(""); 
     Adresstext.setText(""); 
     EmailNotext.setText(""); 
     Phonetext.setText("");  
     Citytext.setText(""); 
     PaymentSpinner.setId(0); 
     ShippngMethod.setId(0); 
     CardNumbertext.setText(""); 
     usernametext.setText(""); 
     pasword.setText(""); 





Toast.makeText(Regist.this,"Customer has been Registered",Toast.LENGTH_LONG).show();  

     } 

我試圖插入數據庫,但它告訴我在那裏列名稱用戶名......我不明白爲什麼它發生請幫助me

回答

2

這是正確的,該列不存在,因爲您創建數據庫的字符串中存在此位:

COLUMN_username + "TEXT ," 

您缺少一個空間。它應該是:

COLUMN_username + " TEXT ," 
+0

錯誤仍然存​​在Barak – DaChavoh

+0

您必須將您的'DATABASE_VERSION'增加到4或卸載並重新安裝應用程序,以便重新創建數據庫並對其所做的更改生效。 – Barak

+0

坦克:)我剛更改了數據庫後,你告訴我的變化 – DaChavoh

0

當您更改數據庫結構,你有沒有改變

​​

價值? 如果更改數據庫的版本,你還需要重寫

public void onUpdate(SQLiteDatabase db) 

功能來更新你的數據庫。

相關問題