表[…]没有名为[…]SQLite java的列
我知道有一些关于这方面的话题,我试着按照那里给出的所有答案去做,但是这对我的情况没有帮助。我不断收到错误消息,第二个电话栏不存在 E/SQLiteLog:(1)表联系人没有名为SecondPhone的列 E/SQLiteDatabase:插入SecondPhone=Phone时出错= PhotoUri=android。resource://project.contactmanager/drawable/untitled_1.png 电子邮件=地址=姓名=测试 android.database.sqlite.SQLiteException:表联系人没有列 命名为SecondPhone(代码1):,编译时:插入到 联系人(SecondPhone、Phone、PhotoUri、电子邮件、地址、姓名)值 (,,,,,,,,,,,?) 这是我收到的错误消息的一部分 这是我的部分代码。我认为问题在这里,但可能在别处表[…]没有名为[…]SQLite java的列,java,android,sqlite,android-studio,Java,Android,Sqlite,Android Studio,我知道有一些关于这方面的话题,我试着按照那里给出的所有答案去做,但是这对我的情况没有帮助。我不断收到错误消息,第二个电话栏不存在 E/SQLiteLog:(1)表联系人没有名为SecondPhone的列 E/SQLiteDatabase:插入SecondPhone=Phone时出错= PhotoUri=android。resource://project.contactmanager/drawable/untitled_1.png 电子邮件=地址=姓名=测试 android.database.s
public class DatabaseSQL extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 2;
//setting variables for future database columns
private static final String DATABASE_NAME = "ContactManagerLite",
TABLE_CONTACTS = "Contacts",
KEY_NAME = "Name",
KEY_PHONE = "Phone",
KEY_SECONDPHONE = "SecondPhone",
KEY_EMAIL = "Email",
KEY_ADDRESS = "Address",
KEY_PHOTOURI = "PhotoUri",
KEY_ID = "ID";
public DatabaseSQL(Context context){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db){ //creates a table upon starting the application
db.execSQL("CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_NAME + " TEXT" + KEY_PHONE + " TEXT" + KEY_SECONDPHONE + " TEXT" + KEY_EMAIL + " TEXT" + KEY_ADDRESS + " TEXT" + KEY_PHOTOURI + " TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){ //if something changes the old table is being deleted and new one is being created with new data
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
onCreate(db);
}
public void createContact(contactList contact){ //variables from getters in contactList are being set as values for database
SQLiteDatabase db= getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getListName());
values.put(KEY_PHONE, contact.getListPhone());
values.put(KEY_SECONDPHONE, contact.getSecondPhone());
values.put(KEY_EMAIL, contact.getEmail());
values.put(KEY_ADDRESS, contact.getAddress());
values.put(KEY_PHOTOURI, contact.getProfilePhotoUri().toString());
db.insert(TABLE_CONTACTS, null, values);
db.close();
}
我正在处理AndroidStudio的排版,您没有分离任何列名。在每列的数据类型之后放置(
,
)
KEY_NAME + " TEXT," + KEY_PHONE + " TEXT," + KEY_SECONDPHONE + " TEXT," +
KEY_EMAIL + " TEXT," + KEY_ADDRESS + " TEXT," + KEY_PHOTOURI + " TEXT)"
完成后,重新安装你的应用程序。如果输入错误,你就没有将你的任何列名分开。在每列的数据类型之后放置(
,
)
KEY_NAME + " TEXT," + KEY_PHONE + " TEXT," + KEY_SECONDPHONE + " TEXT," +
KEY_EMAIL + " TEXT," + KEY_ADDRESS + " TEXT," + KEY_PHOTOURI + " TEXT)"
完成后,重新安装您的应用程序您在此
创建表查询中缺少逗号
db.execSQL("CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_NAME + " TEXT" + KEY_PHONE + " TEXT" + KEY_SECONDPHONE + " TEXT" + KEY_EMAIL + " TEXT" + KEY_ADDRESS + " TEXT" + KEY_PHOTOURI + " TEXT)");
这应该是
db.execSQL("CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_NAME + " TEXT," + KEY_PHONE + " TEXT," + KEY_SECONDPHONE + " TEXT," + KEY_EMAIL + " TEXT," + KEY_ADDRESS + " TEXT," + KEY_PHOTOURI + " TEXT)");
(您必须重新运行查询以使其更新,因此在运行前删除手机上的应用程序数据)
希望这有帮助,让我知道您在这个创建表查询中缺少逗号
db.execSQL("CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_NAME + " TEXT" + KEY_PHONE + " TEXT" + KEY_SECONDPHONE + " TEXT" + KEY_EMAIL + " TEXT" + KEY_ADDRESS + " TEXT" + KEY_PHOTOURI + " TEXT)");
这应该是
db.execSQL("CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_NAME + " TEXT," + KEY_PHONE + " TEXT," + KEY_SECONDPHONE + " TEXT," + KEY_EMAIL + " TEXT," + KEY_ADDRESS + " TEXT," + KEY_PHOTOURI + " TEXT)");
(您必须重新运行查询以使其更新,因此在运行前删除手机上的应用程序数据)
希望这有帮助,让我知道你没有在每一列后面加逗号。试试这个
db.execSQL("CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_NAME + " TEXT," + KEY_PHONE + " TEXT," + KEY_SECONDPHONE + " TEXT," + KEY_EMAIL + " TEXT," + KEY_ADDRESS + " TEXT," + KEY_PHOTOURI + " TEXT)");
在清除数据或重新安装应用程序后运行项目
希望这对您有所帮助。您没有在每列后面加逗号。试试这个
db.execSQL("CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_NAME + " TEXT," + KEY_PHONE + " TEXT," + KEY_SECONDPHONE + " TEXT," + KEY_EMAIL + " TEXT," + KEY_ADDRESS + " TEXT," + KEY_PHOTOURI + " TEXT)");
在清除数据或重新安装应用程序后运行项目
希望这对您有所帮助。我花了数小时寻找解决方案,我确信有逗号!谢谢lot@wierzejs哈哈,事情总是这样的,我们在看不见的小错误上比在制作程序上浪费更多的时间:)@wierzejs记住接受一个答案是正确的,这样其他有类似问题的ppl就可以解决他们的问题。我花了数小时寻找解决方案,我确信有逗号!谢谢lot@wierzejs哈哈,总是这样的,我们在一些看不见的小错误上比在制作程序上浪费更多的时间:)@wierzejs记住要接受一个正确的答案,这样其他有类似问题的ppl就可以解决他们的问题