2016-12-13 35 views
0

我已經盡最大努力衝浪了。我希望在創建表的時候沒有語法錯誤,就像我的類似問題的答案中提到的那樣。爲什麼我的數據庫表中的列未創建?

請幫我解決這個問題。

所需列未創建。這是我得到的消息。

E/SQLiteLog:(1)表ContactDetails沒有名爲 ContactNumber

E/SQLiteDatabase柱:錯誤插入ContactNumber = 9655279648 聯繫人姓名=了Ganeshř

android.database.sqlite.SQLiteException :表ContactDetails沒有名爲ContactNumber(代碼1)的列:在編譯時:INSERT INTO ContactDetails(ContactNumber,ContactName)VALUES(?,?)

public class ProjectConstants { 
      public static final String myDbName = "ContactsDatabase.db"; 
      public static final String myTableName = "ContactDetails"; 
      public static final String nameColumn = "ContactName"; 
      public static final String numberColumn = "ContactNumber"; 
     } 

我有一個類似上面的單獨的類來存儲在整個項目中訪問的常量的值。

public class DBHelper extends SQLiteOpenHelper { 

    private static final String SQLCreateEntries = "CREATE TABLE " + ProjectConstants.myTableName + 
      " (" + ProjectConstants.nameColumn + ProjectConstants.numberColumn + ")"; 
    private static final String SQLDeleteEntries = 
      "DROP TABLE IF EXISTS " + ProjectConstants.myTableName; 

    public DBHelper(Context context) { 
     super(context, String.valueOf(name), null, version); 
    } 


    @Override 
    public void onCreate(SQLiteDatabase sqLiteDatabase) { 
     sqLiteDatabase.execSQL(SQLCreateEntries); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { 
     sqLiteDatabase.execSQL(SQLDeleteEntries); 
     onCreate(sqLiteDatabase); 
    } 

    public void addContact(String nameLabel, String numberLabel) { 
     SQLiteDatabase sqLiteDatabase = this.getWritableDatabase(); 
     ContentValues contentValues = new ContentValues(); 
     contentValues.put(ProjectConstants.nameColumn, nameLabel); 
     contentValues.put(ProjectConstants.numberColumn, numberLabel); 
     sqLiteDatabase.insert(ProjectConstants.myTableName, null, contentValues); 
    } 
} 

回答

1

您創建的表

"CREATE TABLE " + ProjectConstants.myTableName + 
     " (" + ProjectConstants.nameColumn + ProjectConstants.numberColumn + ")" 

Create query語法

"CREATE TABLE MYTABLENAME (MYCOLUMNNAME MYCOLUMNTYPE, MYSECONDCOLUMNNAME MYSECONDCOLUMNTYPE,...)" 

在你Create query你缺少兩個typescommas,解決它,並計劃將工作: )

+0

添加類型,逗號。從模擬器卸載應用程序。重新安裝apk。它運行良好。 :) –

+0

很高興它幫助! –

相關問題