Android 2.3.3
static String name = "Database";
static int version = 1;
SQLiteDatabase sqlDB;
Cursor c;
public Database(Context context) {
super(context, name, null, version);
// TODO Auto-generated constructor stub
sqlDB = getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase sqlDB) {
// TODO Auto-generated method stub
sqlDB.execSQL("create table if not exists Operations(Command Text, Pos1 Text, " +
"Pos2 Text, Pos3 Text, Pos4 Text, Pos5 Text, Pos6 Text, Pos7 Text, Pos8 Text, Pos9 Text, Pos10 Text)");
}
public void insertData() {
// TODO Auto-generated method stub
String addQuery ="ADD, add, and, had, ad, anddd, anndd, null, null, null, null";
sqlDB.execSQL("insert into Operations values("+ addQuery +")");
//Exception at the above line
}
总共有11列。
我可以在数据库中插入NULL吗?如果是,我试图将数据插入数据库的方式有问题吗?
这是我得到的错误:::
12-21 14:53:29.629: E/AndroidRuntime(11894): Caused by: android.database.sqlite.SQLiteException: near "ADD": syntax error: insert into Operations values(ADD, add, and, had, ad, anddd, anndd, null, null, null, null)
12-21 14:53:29.629: E/AndroidRuntime(11894): at android.database.sqlite.SQLiteDatabase.native_execSQL(Native Method)
12-21 14:53:29.629: E/AndroidRuntime(11894): at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1765)
12-21 14:53:29.629: E/AndroidRuntime(11894): at com.x.x.Database.insertData(Database.java:71)
12-21 14:53:29.629: E/AndroidRuntime(11894): at com.x.x.xxx.onCreate(xxx.java:109)
12-21 14:53:29.629: E/AndroidRuntime(11894): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-21 14:53:29.629: E/AndroidRuntime(11894): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
12-21 14:53:29.629: E/AndroidRuntime(11894): ... 11 more
有人可以帮我解释为什么我会在语法上遇到这个错误吗?
答案 0 :(得分:1)
字符串应包含在''
中,因此请更改String addQuery ="ADD, add, and, had, ad, anddd, anndd, null, null, null, null";
为:
String addQuery ="'ADD', 'add', 'and', 'had', 'ad', 'anddd', 'anndd', null, null, null, null";
答案 1 :(得分:0)
SQL语法错误,
请使用insert into test(aa,bb) values('ADD','BB')
其中aa是您的字段名称,'ADD'是字符串
答案 2 :(得分:0)
据我所知,因为你已经定义了一个带有11值的字符串(addQuery),但它将它计为一个。我确定有一个问题就是你遇到运行时错误的原因。
答案 3 :(得分:0)
// Possible to Get Error
public void insertData() {
// TODO Auto-generated method stub
String addQuery ="ADD, add, and, had, ad, anddd, anndd, null, null, null, null";
sqlDB.execSQL("insert into Operations values("+ addQuery +")");
//Exception at the above line
}
use Like Below
public void insertData() {
ContentValues cv=new ContentValues();
cv.put("column1,value);
cv.put("column2,value);
cv.put("column3,value);
cv.put("column4,value);
cv.put("column5,value);
cv.put("column7,value);
database.insert(tabName, SINGLE_colName, cv);
}