java - 无法将数据插入数据库 - android

标签 java android sqlite android-sqlite

我正在尝试将“Collection 夹”插入我的数据库,但我在日志猫中收到此错误,我无法理解。有人可以帮我解决这个问题吗?

这是我在 Activity 中调用的代码:

private static final String DATABASE_CREATE_FAVORITES = "create table "
            + TABLE_FAVORITES + "(" + CATEGORY + " text, " + TITLE_EN
            + " text, " + TITLE_FR + " text, " + TITLE_AR + " text,"
            + DESCRIPTION_EN + "text," + DESCRIPTION_FR + "text,"
            + DESCRIPTION_AR + "text," + DESCRIPTION_PH + "text, PRIMARY KEY ("
            + CATEGORY + ", " + TITLE_EN + ") );";

public long addFavorite(MyObject object) {

        ContentValues values = new ContentValues();
        values.put(CATEGORY, object.getCategory());
        values.put(TITLE_EN, object.getTitleEn());
        values.put(TITLE_FR, object.getTitleFr());
        values.put(TITLE_AR, object.getTitleAr());
        values.put(DESCRIPTION_EN, object.getDescriptionEn());
        values.put(DESCRIPTION_FR, object.getDescriptionFr());
        values.put(DESCRIPTION_AR, object.getDescriptionAr());
        values.put(DESCRIPTION_PH, object.getDescriptionPh());
        // Inserting Row
        return database.insert(TABLE_FAVORITES, null, values);
    }

这就是我在 LogCat 中得到的:

06-01 15:12:10.745: E/SQLiteDatabase(6766): Error inserting titleFR=1 - Lorsqu'on se réveille category=Home & Family DESCRIPTION_PH=Lâ ilâha illâ l-lâhu wahdahu lâ sharîka lahu, lahu-l-mulku wa lahu lhamdu, wa huwa calâ kulli shay’in qadîr. Subhâna l-lâhi, wa-l-hamdu li-l-lâhi, wa lâ ilâha illa l-lâhu, wa l-lâhu akbaru, wa lâ hawla wa lâ quwwata illa bi-l-lâhi-l-caliyyi-l-cazîm. Rabbi ghfir lî DESCRIPTION_AR=يَا أَيُّهَا الَّذِينَ آمَنُوا اذْكُرُوا اللهَ ذِكْرًا كَثِيراً DESCRIPTION_EN=O you who believe, remember Allah with much rememberance titleAR=1 - أذكار الاستيقاظ من النوم DESCRIPTION_FR=O vous qui croyez ! Evoquez Allah d’une façon abondante titleEN=1 - When waking up
06-01 15:12:10.745: E/SQLiteDatabase(6766): android.database.sqlite.SQLiteException: table favorites has no column named DESCRIPTION_PH: , while compiling: INSERT INTO favorites(titleFR,category,DESCRIPTION_PH,DESCRIPTION_AR,DESCRIPTION_EN,titleAR,DESCRIPTION_FR,titleEN) VALUES (?,?,?,?,?,?,?,?)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:68)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at android.database.sqlite.SQLiteStatement.acquireAndLock(SQLiteStatement.java:260)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:112)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1718)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1591)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at com.quanticapps.hisnalmuslim.functions.DatabaseHelper.addFavorite(DatabaseHelper.java:103)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at com.quanticapps.hisnalmuslim.Details$4.onClick(Details.java:222)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at android.view.View.performClick(View.java:3534)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at android.view.View$PerformClick.run(View.java:14263)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at android.os.Handler.handleCallback(Handler.java:605)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at android.os.Handler.dispatchMessage(Handler.java:92)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at android.os.Looper.loop(Looper.java:137)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at android.app.ActivityThread.main(ActivityThread.java:4441)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at java.lang.reflect.Method.invokeNative(Native Method)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at java.lang.reflect.Method.invoke(Method.java:511)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-01 15:12:10.745: E/SQLiteDatabase(6766):     at dalvik.system.NativeStart.main(Native Method)

最佳答案

您的表创建错误,根本没有创建表。:

+ DESCRIPTION_EN + "text," + DESCRIPTION_FR + "text,"
+ DESCRIPTION_AR + "text," + DESCRIPTION_PH + "text,,PRIMARY KEY ("

虽然你应该写:

+ DESCRIPTION_EN + " text," + DESCRIPTION_FR + " text,"
+ DESCRIPTION_AR + " text," + DESCRIPTION_PH + " text, PRIMARY KEY ("

注意字段名称和字段类型之间的空格。

关于java - 无法将数据插入数据库 - android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23980281/

相关文章:

java - 使用 JXDatePicker 时 JLabel 背景扭曲

java - Java 中导数近似的编码。没有输出值

android - 通过 dip 在 webview 中指定字体大小

java - 使用 JPA 注释和具有 varchar 长度的 Map<String,String>

java - 如何使用扫描仪从文件中读取并以不同的顺序显示

android - Google Cloud Messaging - CCS (XMPP) 与 HTTP 服务器

android - 在 android 中为自定义切换设置禁用状态的图像

javascript - 具有默认值的 SQLite 数据库

sql - 子查询中的SQL子查询

java - 您如何确定 .sqlite 或 .sqback 在 Java 中是否损坏?