Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
android.database.sqlite.SQLiteException:表联系人没有名为uid的列_Android_Sqlite - Fatal编程技术网

android.database.sqlite.SQLiteException:表联系人没有名为uid的列

android.database.sqlite.SQLiteException:表联系人没有名为uid的列,android,sqlite,Android,Sqlite,这是我的代码: public void onCreate(SQLiteDatabase db) { String CREATE_CONTACTS_TABLE = "CREATE TABLE IF NOT EXISTS" + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY," // and auto increment will be handled with

这是我的代码:

public void onCreate(SQLiteDatabase db) 
{
    String CREATE_CONTACTS_TABLE = "CREATE TABLE IF NOT EXISTS" 
            + TABLE_CONTACTS + "("
            + KEY_ID + " INTEGER PRIMARY KEY," // and auto increment will be handled with                            primary key
            + KEY_UID + " TEXT,"
            + KEY_NAME + " TEXT," 
            + KEY_PH_NO + " TEXT,"
            + KEY_Comapny + " TEXT,"
            + KEY_email + " TEXT," 
            + KEY_country + " TEXT," 
            + KEY_street + " TEXT," 
            + KEY_city + " TEXT,"+ KEY_state + " TEXT," 
            + KEY_zip + " TEXT);";
    db.execSQL(CREATE_CONTACTS_TABLE);
}
我得到以下例外:

: E/SQLiteDatabase(2645): android.database.sqlite.SQLiteException: table contacts has no column named uid (code 1): , while compiling: INSERT INTO contacts(uid,zip,phone_number,email,company_name,street,name,state,city,country) VALUES (?,?,?,?,?,?,?,?,?,?)
请帮忙。
谢谢

您的
创建表中有语法错误
,因此显然它尚未运行。在
EXISTS
和表名之间需要一个空格

由于当前SQL的
onCreate()
尚未运行,因此您的数据库文件的版本较旧。卸载应用程序以将其删除,并使
onCreate()
再次运行。有关详细信息,请参阅。

替换此查询:

String CREATE_CONTACTS_TABLE = "CREATE TABLE IF NOT EXISTS" 
                + TABLE_CONTACTS + "("
                + KEY_ID + " INTEGER PRIMARY KEY," // and auto increment will be handled with                            primary key
                + KEY_UID + " TEXT,"
                + KEY_NAME + " TEXT," 
                + KEY_PH_NO + " TEXT,"
                + KEY_Comapny + " TEXT,"
                + KEY_email + " TEXT," 
                + KEY_country + " TEXT," 
                + KEY_street + " TEXT," 
                + KEY_city + " TEXT,"+ KEY_state + " TEXT," 
                + KEY_zip + " TEXT);";
        db.execSQL(CREATE_CONTACTS_TABLE);
为此:

String CREATE_CONTACTS_TABLE = "CREATE TABLE IF NOT EXISTS " 
                + TABLE_CONTACTS + "("
                + KEY_ID + " INTEGER PRIMARY KEY," // and auto increment will be handled with                            primary key
                + KEY_UID + " TEXT,"
                + KEY_NAME + " TEXT," 
                + KEY_PH_NO + " TEXT,"
                + KEY_Comapny + " TEXT,"
                + KEY_email + " TEXT," 
                + KEY_country + " TEXT," 
                + KEY_street + " TEXT," 
                + KEY_city + " TEXT,"+ KEY_state + " TEXT," 
                + KEY_zip + " TEXT);";
        db.execSQL(CREATE_CONTACTS_TABLE);
注意:创建表查询中存在语法错误,您需要在EXISTS和TABLE\u联系人之间留出一个空格。

以下是解决方案: 我面临同样的问题,现在我解决了

我们想让你做一个数据库应用程序 您有两个java类 首先是参数
Params.java
,另一个是
Contact.java
,我们在这里制作构造函数、getter和setter等

Param.java
下面的类代码:(请参见第5行和第6行中的错误)并修复该引用

package com.andro.background.crud_db.param;

public class Params {
    public static final int DB_VERSION=1;
    public static final String DB_NAME="contacts_db"; //(-_-)check this, My mistake was "contact_db" , i write wrong name so it shows error
    public static final String TABLE_NAME="contacts_table"; // Right is "contact_table", this kinda error in your code

    //key of our table in db
    public static final String KEY_ID="id";
    public static final String KEY_NAME="name";
    public static final String KEY_PHONE="phone_number";
}
(在上面的代码中检查此错误) 如果您犯了同样的错误,那么您的错误将如下代码所示

2020-02-03 02:57:24.432 10705-10705/com.andro.background.cruddb E/SQLiteLog: (1) table contacts_table has no column named phone_number
2020-02-03 02:57:24.434 10705-10705/com.andro.background.cruddb E/SQLiteDatabase: Error inserting name=sunnykanumber phone_number=9090909090
    android.database.sqlite.SQLiteException: table contacts_table has no column named phone_number (code 1): , while compiling: INSERT INTO contacts_table(name,phone_number) VALUES (?,?)
        at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
        at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:890)
        at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:501)
        at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
        at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
        at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
        at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1546)
        at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1417)
        at com.andro.background.cruddb.data.MyDbHandler.addContact(MyDbHandler.java:62)
        at com.andro.background.cruddb.MainActivity.onCreate(MainActivity.java:31)
        at android.app.Activity.performCreate(Activity.java:7009)
        at android.app.Activity.performCreate(Activity.java:7000)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)


2020-02-03 02:57:24.432 10705-10705/com.andro.background.cruddb E/SQLiteLog:(1)表格联系人没有名为电话号码的列
2020-02-03 02:57:24.434 10705-10705/com.andro.background.cruddb E/SQLiteDatabase:插入name=sunnykanumber电话号码=9090时出错
android.database.sqlite.SQLiteException:table contacts_table没有名为phone_number(代码1)的列,编译时:INSERT-INTO contacts_table(name,phone_number)值(?,)
位于android.database.sqlite.SQLiteConnection.nativePrepareStatement(本机方法)
位于android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:890)
位于android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:501)
位于android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
位于android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
位于android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31)
位于android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1546)
位于android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1417)
位于com.andro.background.cruddb.data.MyDbHandler.addContact(MyDbHandler.java:62)
位于com.andro.background.cruddb.MainActivity.onCreate(MainActivity.java:31)
位于android.app.Activity.performCreate(Activity.java:7009)
位于android.app.Activity.performCreate(Activity.java:7000)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
位于android.app.ActivityThread.-wrap11(未知来源:0)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)上
位于android.os.Handler.dispatchMessage(Handler.java:106)
位于android.os.Looper.loop(Looper.java:164)
位于android.app.ActivityThread.main(ActivityThread.java:6494)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Here KEY\u UID==UID????正当请显示insert方法。请显示您的字段定义和insert语句,好吗?实际上,安装新版本的应用程序很有效!!非常感谢您的快速回复