我一直在android上开发一个简单的应用程序,你输入一系列数字并按下一个按钮,这个信息传递到另一个活动,应该存储在数据库中,当你提交的数字很好,但错误是使用sqlite中的函数,根据Logcat我的错误是语法,但我无法达到它,我是开发Android的新手
Logcat
Build Date: 12/12/12 Wed
Local Branch:
Remote Branch: m/jb_rel_2.0.3
Local Patches: NONE
Reconstruct Branch: AU_LINUX_ANDROID_JB_REL_2.0.3_RB3.04.01.01.42.002 + NOTHING
02-04 16:12:56.247 10395-10395/austranet.myapplication2 E/SQLiteLog﹕ (1) near "/": syntax error
02-04 16:12:56.247 10395-10395/austranet.myapplication2 W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x40f7c438)
02-04 16:12:56.267 10395-10395/austranet.myapplication2 E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{austranet.myapplication2/austranet.myapplication2.registro}: android.database.sqlite.SQLiteException: near "/": syntax error (code 1): , while compiling: CREATE TABLE ingresos(_id INTEGER PRIMARY KEY AUTOINCREMENT,rut TEXT NOT NULL,fecha_registro DATETIME DEFAULT CURRENT_TIMESTAMP,ingreso/salida TEXT);
sqlite处理程序快照:
答案 0 :(得分:2)
查看此字段:...,ingreso/salida TEXT);
。
这是无效的列定义。
使用ingreso_salida
或使用(强烈气馁)方括号:
...,[ingreso/salida] TEXT);
答案 1 :(得分:1)
如果您想在列名中使用/
,则必须将其括在括号中:
CREATE TABLE ingresos
(_id INTEGER PRIMARY KEY AUTOINCREMENT,
rut TEXT NOT NULL,
fecha_registro DATETIME DEFAULT CURRENT_TIMESTAMP,
[ingreso/salida] TEXT);
答案 2 :(得分:1)
``当前的创建表查询有以下问题:
1。 ingreso/salida
是无效的列名。在列名中使用有效字符,如ingreso_salida
2。列名称缺少列名称之间的空格。所以使用String.format
创建有效的sqlite查询:
String tableQuery=String.format("CREATE TABLE %s (%s
INTEGER PRIMARY KEY AUTOINCREMENT,
%s TEXT NOT NULL,
%s DATETIME DEFAULT CURRENT_TIMESTAMP,
%s TEXT)",
"ingresos", "_id",
"rut", "fecha_registro","ingreso_salida"));