当前位置: 首页 > 知识库问答 >
问题:

向SQLite数据库插入项时出错

傅阳
2023-03-14
private static final int DB_VERSION = 1 ;
private static final String DB_NAME = "db-colors";
private static final String TABLE_COLORS = "tbl-colors";

private static final String CMD_CREATE_COLOR_TABLE =
        "CREATE TABLE IF NOT EXISTS '" + TABLE_COLORS +"' ('" +
                Colors.KEY_COLORNAME + "' TEXT, '" +
                Colors.KEY_COLORIMAGE + "' TEXT, '" +
                Colors.KEY_COLORRGB + "' TEXT )";


public ColorDBHelper(Context context) {
    super(context, DB_NAME, null, DB_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(CMD_CREATE_COLOR_TABLE);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_COLORS );
}
public void insertColor(Colors color){

    ContentValues values = new ContentValues();
    values.put(Colors.KEY_COLORNAME,color.getColorName());
    values.put(Colors.KEY_COLORIMAGE,color.getColorImage());
    values.put(Colors.KEY_COLORRGB,color.getColorRgb());
    SQLiteDatabase database = getWritableDatabase();
    database.insert(TABLE_COLORS,null,values);
    Log.i("database","Database add an item : " + color.getColorName());
    if (database.isOpen())
        database.close();
}


public class Colors {

private String colorName ;
private String colorImage ;
private String colorRgb ;

public static final String KEY_COLORNAME = "colorName";
public static final String KEY_COLORIMAGE = "colorImage";
public static final String KEY_COLORRGB = "colorRgb";

public String getColorName() {
    return colorName;
}

public void setColorName(String colorName) {
    this.colorName = colorName;
}

public String getColorImage() {
    return colorImage;
}

public void setColorImage(String colorImage) {
    this.colorImage = colorImage;
}

public String getColorRgb() {
    return colorRgb;
}

public void setColorRgb(String colorRgb) {
    this.colorRgb = colorRgb;
}

@Override
public String toString() {

    return colorName;
}

共有1个答案

韦安怡
2023-03-14

您需要更改table_colors=“tbl-colors”;使用table_colors=“tbl_colors”;

由于“-”在sqlite中将被视为减号,因此需要使用“_”来代替“-”

表名验证

"xyz123" - valid
"123xyz" - not valid
"xyz_123" - valid
"_123xyz" - valid
"xyz-xyz" - not valid (looks like an expression)
"xyz.xyz" - not valid (looks like a database.table notation)
 类似资料:
  • 这是我的代码: 有人能知道这段代码中的错误是什么,请修复它。

  • 我忙于一项学校作业,我有一个由三个表组成的基本access数据库。Book、Reader和BookRated,其中as BookRated是交集表,主键userName来自Reader和ISBN来自Book组成BookRated的复合主键(作为外键)。 我正试图将信息插入书签表中,但出现以下错误

  • 问题内容: 我有一个字典,想要将所有值添加到sqlite数据库中。词典中的所有键都存在于数据库中,并且所有键的类型均为字符串。但是,在将值输入数据库时​​遇到了麻烦。每当下面的代码遇到字符串中带有“”的字符串时,它们都是丑陋的,不安全的,并且会出错,但是可以正常工作。 我如何才能优雅地解决此问题,使其安全并接受字符串中带有“”的输入?我遇到了几种其他方法。例如: 但是会引发类型错误。 到目前为止,

  • 我想向数据库中插入值,但它无法工作,尽管我的代码在用作存储过程时运行良好。我需要使用按钮点击来存储值。请告诉我代码有什么问题。它没有显示任何错误或异常,但表中的数据没有更新

  • 我正在尝试从我创建的一个简单的联系人表单中插入数据。我正在使用phpMyAdmin 下面是PHP(出于安全考虑,我删除了define语句,但我可以毫无问题地建立到数据库的链接。) 当有人点击论坛上的submit按钮后,代码就会运行,据我所知,这是正常工作的。 该错误发生在php代码的末尾。正在输出“SLQ Insert Statement FAILD”,但未发布mysql错误。 我的数据库/表的设

  • 我在编码方面是新手,所以我复制粘贴了一些教程的代码,但是当我试图删除“睡眠”列中的所有数据时,出现了这个错误。 Android数据库sqlite。SQLiteException:在“20170128”附近:编译时出现语法错误(代码1)::在android上从20170128删除。数据库sqlite。SQLiteConnection。android上的nativePrepareStatement(本