【问题标题】:getting sqlite exception when insert ? how to?插入时出现sqlite异常?如何?
【发布时间】:2010-02-24 09:53:02
【问题描述】:

我是这样创建数据库的

db.execSQL("CREATE TABLE "+TABLE_NAME+" (" 
    +_ID+" INTEGER PRIMARY KEY AUTOINCREMENT," 
    + TITLE+" TEXT UNIQUE," 
    + PUBLISHED+" DATETIME," 
    + CONTENT+" TEXT," 
    + RATERS+" TEXT,"
    + VIEWCOUNT+" TEXT,"
    + THUMBNAIL+" TEXT,"
    + FAVCOUNT+" TEXT,"
    + FAVSTAT+" INTEGER,"
    + LINKWEB+" TEXT);");

当我尝试在表中插入值时出现异常??

02-24 15:57:37.802: ERROR/DatabaseUtils(283): Writing exception to parcel
02-24 15:57:37.802: ERROR/DatabaseUtils(283): android.database.sqlite.SQLiteException: table bru_tube has no column named linkweb: , while compiling: INSERT INTO bru_tube(content, favstat, title, thumbnail, linkweb, raters, viewcount, published, favcount) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?);
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.database.sqlite.SQLiteProgram.native_compile(Native Method)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.database.sqlite.SQLiteProgram.compile(SQLiteProgram.java:110)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:41)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1026)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1412)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.database.sqlite.SQLiteDatabase.insertOrThrow(SQLiteDatabase.java:1307)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at com.brownuniv.brutube.BruTube_Provider.insert(BruTube_Provider.java:82)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.content.ContentProvider$Transport.insert(ContentProvider.java:150)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:140)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.os.Binder.execTransact(Binder.java:287)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at dalvik.system.NativeStart.run(Native Method)

怎么解决???有什么想法吗?

【问题讨论】:

    标签: database android sqlite insert


    【解决方案1】:

    您确定 LINKWEB 变量还包含文本“linkweb”吗?可能是拼写错误。您可以使用 ADB 连接到模拟器并查看数据库 - 可能会有所帮助(请参阅 this document)。

    【讨论】:

    • 正如 Thorsten 所说,确保您的数据库中有正确的表模式。从上面的链接中,查看“从远程外壳检查 sqlite3 数据库”部分
    【解决方案2】:

    结帐您的表中存在“linkweb”列

    【讨论】:

      【解决方案3】:

      在模拟器或桌面上的命令行中使用sqlite3 来验证您尝试实现的目标是否正确且没有语法错误。还要在创建表后验证架构。

      【讨论】:

        【解决方案4】:

        我认为没有任何列名linkweb。

        【讨论】:

          【解决方案5】:

          我认为您在写完文字后缺少空格

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-10-09
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多