SQLiteLog:(1) 靠近“Produse":语法错误 [英] SQLiteLog: (1) near "Produse": syntax error

查看:62
本文介绍了SQLiteLog:(1) 靠近“Produse":语法错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将另一个类的数据添加到我的数据库中,但出现以下错误:

I Want to add data from another class into my database and I get this errors:

SQLiteLog:(1) 在Produse"附近:语法错误"和SQLiteDatabase:插入 Pret=102.0 Ingrediente=Ingredient 1 时出错;成分2;成分3;成分4;成分5;数量 Produse=Produs 15Poza=poza15.jpg Gramaj=195.0
android.database.sqlite.SQLiteException:靠近Produse":语法错误(代码 1): , 编译时: INSERT INTO Produse(Pret,Ingrediente,NumeProduse,Poza,Gramaj) 值 (?,?,?,?,?)"

"SQLiteLog: (1) near "Produse": syntax error" and "SQLiteDatabase: Error inserting Pret=102.0 Ingrediente=Ingredient 1; Ingredient 2; Ingredient 3; Ingredient 4; Ingredient 5; Nume Produse=Produsul 15 Poza=poza15.jpg Gramaj=195.0
android.database.sqlite.SQLiteException: near "Produse": syntax error (code 1): , while compiling: INSERT INTO Produse(Pret,Ingrediente,Nume Produse,Poza,Gramaj) VALUES (?,?,?,?,?)"

这是我的 MyDBHandler 类代码

Here is my code for MyDBHandler class

public class MyDBHander extends SQLiteOpenHelper{

    public static final int DATABASE_VERSION = 1;
    public static final String DATABASE_NAME = "produseDB.db";
    public static final String TABLE_PRODUCTS = "Produse";

    public static int COLUMN_ID = 0;
    public static String COLUMN_PRODUS = "Nume Produse";
    public static String COLUMN_INGREDIENTE = "Ingrediente";
    public static String COLUMN_GRAMAJ = "Gramaj";
    public static String COLUMN_PRET = "Pret";
    public static String COLUMN_POZA = "Poza";
    public static SQLiteDatabase db;

    public MyDBHander(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, DATABASE_NAME, factory, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db){
        String CREATE_PRODUCTS_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_PRODUCTS + " ( "
                + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT " + COLUMN_PRODUS + " TEXT, " + COLUMN_INGREDIENTE
                + " TEXT, " + COLUMN_GRAMAJ + " TEXT, " + COLUMN_PRET + " TEXT, " + COLUMN_POZA +" TEXT" + " ) ";
        db.execSQL(CREATE_PRODUCTS_TABLE);
    }

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

    public void addProdus(Produs produs){
        ContentValues values = new ContentValues();

        ArrayList<String> ingredienteprodus;
        ingredienteprodus=produs.getIngrediente();
        String listaingrediente="";
        for (String s : ingredienteprodus)
        {
            listaingrediente += s + "; ";
        }

        values.put(COLUMN_PRODUS,produs.getNume_produs());
        values.put(COLUMN_INGREDIENTE, listaingrediente);
        values.put(COLUMN_GRAMAJ, String.valueOf(produs.getGramaj()));
        values.put(COLUMN_PRET, String.valueOf(produs.getPret()));
        values.put(COLUMN_POZA, produs.getPoza());

        db = getWritableDatabase();

        db.insert(TABLE_PRODUCTS, null, values);
        db.close();
    }

}

推荐答案

您不应在列名中使用空格.

You should not use whitespaces in your column names.

改变

public static String COLUMN_PRODUS = "Nume Produse";

进入

public static String COLUMN_PRODUS = "NumeProduse";

这篇关于SQLiteLog:(1) 靠近“Produse":语法错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆