SQLiteLog:(1) 靠近“Produse":语法错误 [英] SQLiteLog: (1) near "Produse": syntax error
问题描述
我想将另一个类的数据添加到我的数据库中,但出现以下错误:
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屋!