Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
表[…]没有名为[…]SQLite java的列_Java_Android_Sqlite_Android Studio - Fatal编程技术网

表[…]没有名为[…]SQLite java的列

表[…]没有名为[…]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

我知道有一些关于这方面的话题,我试着按照那里给出的所有答案去做,但是这对我的情况没有帮助。我不断收到错误消息,第二个电话栏不存在

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、电子邮件、地址、姓名)值 (,,,,,,,,,,,?)

这是我收到的错误消息的一部分

这是我的部分代码。我认为问题在这里,但可能在别处

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就可以解决他们的问题