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);
}
}
添加類型,逗號。從模擬器卸載應用程序。重新安裝apk。它運行良好。 :) –
很高興它幫助! –