android.database.sqlite.SQLiteException:表abc没有名为xyz的列

Android开发人员

尝试在SQLite数据库中插入记录时出现以下错误-

android.database.sqlite.SQLiteException:表jolly没有名为noOfShares(代码1)的列:,而在编译时:INSERT INTO jolly(noOfShares,id,noOfMustGos,noOfSeen,caption,noOfBeenTheres,location)VALUES(?,?,?, ?,?,?,?)

我不明白为什么它按此顺序显示列:

  • noOfShares
  • ID
  • noOfMustGos
  • noOfSeen
  • 标题
  • noOfBeenTheres
  • 地点

而我创建了具有不同列顺序的表,并以相同顺序分配值。我尝试卸载该应用程序,还更改了表名,但未解决。

适配器:

VideoSql videoSql;
    public View getView(final int i, View v, ViewGroup viewGroup) {
    videoSql=new VideoSql();
DatabaseHandler db = new DatabaseHandler(mContext);
        videoSql.setId(mVideos.get(i).getId());
        videoSql.setCaption(mVideos.get(i).getCaption());
        videoSql.setNoOfMustGos(mVideos.get(i).getNoOfMustGos());
        videoSql.setNoOfShares(mVideos.get(i).getNoOfShares());
        videoSql.setLocation(mVideos.get(i).getLocation());
        videoSql.setNoOfBeenTheres(mVideos.get(i).getNoOfBeenTheres());
        videoSql.setNoOfSeen(mVideos.get(i).getNoOfSeen());

        db.addContact(videoSql);
}

DatabaseHandler:

public class DatabaseHandler extends SQLiteOpenHelper {

    // All Static variables
    // Database Version
    private static final int DATABASE_VERSION = 1;
VideoSql mvideo;
    // Database Name
    private static final String DATABASE_NAME = "TDatabase";

    // Contacts table name
    private static final String TABLE_JOLLY = "jolly";

    // Contacts Table Columns names
    private static final String KEY_ID = "id";
    private static final String KEY_CAPTION = "caption";
    private static final String KEY_LOCATION = "location";
    private static final String KEY_NOSHARES = "noOfShares";
    private static final String KEY_NOBEENTHERE = "noOfBeenTheres";
    private static final String KEY_NOMUSTGO = "noOfMustGos";
    private static final String KEY_NOCOMMENTS = "noOfComments";
    private static final String KEY_NOSEEN = "noOfSeen";
    private static final String KEY_USERNAME = "userName";
    private static final String KEY_USERID = "userId";
    private static final String KEY_TIMESTAMP ="timestamp" ;
    private static final String KEY_FOLLOWED = "followed";
    private static final String KEY_BEENTHERE = "beenThere";
    private static final String KEY_MUSTGO = "mustGo";
    private static final String KEY_NOFOLLOWED = "noOfFollowed";
    private static final String KEY_NOFOLLOWERS = "noOfFollowers";
    private static final String KEY_USERHANDLE = "userHandle";
    private static final String KEY_DTS = "dts";
    private static final String KEY_FEATURED = "featured";
    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);

    }
    @Override
    public void onCreate(SQLiteDatabase db) {


        String CREATE_JOLLY_TABLE = "CREATE TABLE " + TABLE_JOLLY + "("
                + KEY_ID +  KEY_CAPTION +  KEY_LOCATION +  KEY_NOSHARES + KEY_NOBEENTHERE +KEY_NOMUSTGO +
                 KEY_NOSEEN +")" ;
        db.execSQL(CREATE_JOLLY_TABLE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion {

        db.execSQL("DROP TABLE IF EXISTS " + TABLE_JOLLY);

        onCreate(db);
    }

    public void addContact(VideoSql videoSql)
    {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(KEY_ID, videoSql.getId());
        values.put(KEY_CAPTION, videoSql.getCaption());
        values.put(KEY_LOCATION, videoSql.getLocation());
        values.put(KEY_NOSHARES, videoSql.getNoOfShares());
        values.put(KEY_NOBEENTHERE, videoSql.getNoOfBeenTheres());
        values.put(KEY_NOMUSTGO, videoSql.getNoOfMustGos());

        values.put(KEY_NOSEEN, videoSql.getNoOfSeen());

        db.insert(TABLE_JOLLY, null, values);

        Log.e("addcontact", videoSql.getCaption());
        db.close(); // Closing database connection
    }

    // Getting All Contacts
    public List<VideoSql> getAllContacts() {
        List<VideoSql> contactList = new ArrayList<VideoSql>();

        String selectQuery = "SELECT  * FROM " + TABLE_JOLLY;

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);


        if (cursor.moveToFirst())
        {
            do
            {
                VideoSql videoinfo = new VideoSql();
                videoinfo.setId(cursor.getString(0));
                videoinfo.setCaption(cursor.getString(1));
                videoinfo.setLocation(cursor.getString(2));
                videoinfo.setNoOfShares(cursor.getString(3));
                videoinfo.setNoOfBeenTheres(cursor.getString(4));
                videoinfo.setNoOfMustGos(cursor.getString(5));

                videoinfo.setNoOfSeen(cursor.getString(6));


                contactList.add(videoinfo);
            }
            while (cursor.moveToNext());
        }


        return contactList;
    }
}
路西法

实际上,您在创建表语法中缺少了每一列的数据类型。

您应该使用以下语法创建表,

String CREATE_JOLLY_TABLE = "CREATE TABLE " + TABLE_JOLLY + "("
            + KEY_ID + " integer primary key autoincrement,"
......<other column-name> <column-type>; ///

注意:完成上述建议的更改后,您应该首先从设备中删除旧的应用程序,然后再次对其进行测试,否则它将继续给您同样的错误,onCreate(SQLiteDatabase db)因为由于它已使用旧实例执行,因此不会执行方法。因此,要执行onCreate(SQLiteDatabase db)的代码,建议从设备中删除完全旧的应用程序,然后重新执行代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

android.database.sqlite.SQLiteException:表XXX没有名为XXX的列(代码1)

来自分类Dev

android.database.sqlite.SQLiteException:表格数据没有名为_Y的列

来自分类Dev

android.database.sqlite.SQLiteException:没有这样的表

来自分类Dev

android.database.sqlite.SQLiteException:表中没有这样的列

来自分类Dev

Android SQLite错误:android.database.sqlite.SQLiteException:没有这样的列:(代码1)

来自分类Dev

android.database.sqlite.SQLiteException:没有这样的列:highID(Sqlite 代码 1):

来自分类Dev

android.database.sqlite.SQLiteException:

来自分类Dev

引起原因:android.database.sqlite.SQLiteException:没有这样的表,同时编译了DELETE FROM

来自分类Dev

在将数据插入SQLite数据库时,表没有名为xyz的列

来自分类Dev

android.database.sqlite.SQLiteException:错误

来自分类Dev

无法启动活动,android.database.sqlite.SQLiteException:没有这样的表,而在编译时:SELECT * FROM table

来自分类Dev

无法启动活动,android.database.sqlite.SQLiteException:没有这样的表,而在编译时:SELECT * FROM table

来自分类Dev

由以下原因引起:android.database.sqlite.SQLiteException:没有这样的列:编译时名称(代码1):

来自分类Dev

android.database.sqlite.SQLiteException:无此类列或名称

来自分类Dev

Database Version SQLite Android

来自分类Dev

Python \ SQLite:表A没有名为X的列

来自分类Dev

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

来自分类Dev

android.database.sqlite.SQLiteException:无法识别的令牌

来自分类Dev

android.database.sqlite.SQLiteException:靠近“UNION”:语法错误

来自分类Dev

在SQLite Database Android中选择

来自分类Dev

如何解决android.database.sqlite.SQLiteException:无此类列:ttd(代码1)

来自分类Dev

android.database.sqlite.SQLiteException:无此类列:COLUMN_USER_USERNAME

来自分类Dev

Android:android.database.sqlite.SQLiteException:无此类列:_id:,而编译时:SELECT _id,类别,摘要,描述,状态FROM todo

来自分类Dev

android.database.sqlite.SQLiteException:附近“:语法错误(代码1):,而编译时:android编程错误

来自分类Dev

Android开发人员控制台中的android.database.sqlite.SQLiteException

来自分类Dev

Kotlin / Android:android.database.sqlite.SQLiteException:否这样的表:Table_xx(代码1 SQLITE_ERROR):,而在编译时:从Table_xx中选择*

来自分类Dev

表没有名为的列:插入时的 SQLite 奇怪行为

来自分类Dev

SQLite:表 [name_table] 没有名为 [name_column] 的列

来自分类Dev

android.database.sqlite.SQLiteException:靠近“ ON”:语法错误(代码1)

Related 相关文章

  1. 1

    android.database.sqlite.SQLiteException:表XXX没有名为XXX的列(代码1)

  2. 2

    android.database.sqlite.SQLiteException:表格数据没有名为_Y的列

  3. 3

    android.database.sqlite.SQLiteException:没有这样的表

  4. 4

    android.database.sqlite.SQLiteException:表中没有这样的列

  5. 5

    Android SQLite错误:android.database.sqlite.SQLiteException:没有这样的列:(代码1)

  6. 6

    android.database.sqlite.SQLiteException:没有这样的列:highID(Sqlite 代码 1):

  7. 7

    android.database.sqlite.SQLiteException:

  8. 8

    引起原因:android.database.sqlite.SQLiteException:没有这样的表,同时编译了DELETE FROM

  9. 9

    在将数据插入SQLite数据库时,表没有名为xyz的列

  10. 10

    android.database.sqlite.SQLiteException:错误

  11. 11

    无法启动活动,android.database.sqlite.SQLiteException:没有这样的表,而在编译时:SELECT * FROM table

  12. 12

    无法启动活动,android.database.sqlite.SQLiteException:没有这样的表,而在编译时:SELECT * FROM table

  13. 13

    由以下原因引起:android.database.sqlite.SQLiteException:没有这样的列:编译时名称(代码1):

  14. 14

    android.database.sqlite.SQLiteException:无此类列或名称

  15. 15

    Database Version SQLite Android

  16. 16

    Python \ SQLite:表A没有名为X的列

  17. 17

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

  18. 18

    android.database.sqlite.SQLiteException:无法识别的令牌

  19. 19

    android.database.sqlite.SQLiteException:靠近“UNION”:语法错误

  20. 20

    在SQLite Database Android中选择

  21. 21

    如何解决android.database.sqlite.SQLiteException:无此类列:ttd(代码1)

  22. 22

    android.database.sqlite.SQLiteException:无此类列:COLUMN_USER_USERNAME

  23. 23

    Android:android.database.sqlite.SQLiteException:无此类列:_id:,而编译时:SELECT _id,类别,摘要,描述,状态FROM todo

  24. 24

    android.database.sqlite.SQLiteException:附近“:语法错误(代码1):,而编译时:android编程错误

  25. 25

    Android开发人员控制台中的android.database.sqlite.SQLiteException

  26. 26

    Kotlin / Android:android.database.sqlite.SQLiteException:否这样的表:Table_xx(代码1 SQLITE_ERROR):,而在编译时:从Table_xx中选择*

  27. 27

    表没有名为的列:插入时的 SQLite 奇怪行为

  28. 28

    SQLite:表 [name_table] 没有名为 [name_column] 的列

  29. 29

    android.database.sqlite.SQLiteException:靠近“ ON”:语法错误(代码1)

热门标签

归档