编译时出现此错误:
android.database.sqlite.SQLiteException: near "TABLEnewtable": syntax error (code 1): , while compiling: CREATE TABLEnewtable{id INTEGER PRIMERY KEY, editname TEXT, edittel TEXT, editskype TEXT, editaddress TEXT }.
public class DataManipulator {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 1;
static final String TABLE_NAME = "newtable";
private static Context context;
static SQLiteDatabase db;
private SQLiteStatement insertStmt;
private static final String INSERT = "insert into" +TABLE_NAME+ "(editname, edittel, editskype,
editaddress) values(?,?,?,?)";
public DataManipulator(Context context)
{
DataManipulator.context = context;
OpenHelper openHelper = new OpenHelper(DataManipulator.context);
DataManipulator.db = openHelper.getReadableDatabase();
this.insertStmt = DataManipulator.db.compileStatement(INSERT);
}
public long insert(String editname, String edittel, String editskype, String editaddress)
{
this.insertStmt.bindString(1, editname);
this.insertStmt.bindString(2, edittel);
this.insertStmt.bindString(3, editskype);
this.insertStmt.bindString(4, editaddress);
return this.insertStmt.executeInsert();
}
public void deleteAll()
{
db.delete(TABLE_NAME, null, null);
}
public List<String[]> selectAll()
{
List<String[]> list = new ArrayList<String[]>();
Cursor cursor = db.query(TABLE_NAME, new String[]{"id","editname", "edittel", "editskype",
"editaddress"},null, null, null, null, "name asc");
int x=0;
if(cursor.moveToFirst())
{
do {
String[] bb= new String[] {
cursor.getString(0),cursor.getString(1),cursor.getString(2),cursor.getString(3),cursor.getString(4)};
list.add(bb);
x=x+1;
}
while(cursor.moveToNext());
}
if(cursor != null && !cursor.isClosed())
{
cursor.close();
}
cursor.close();
return list;
}
public void delete(int rowId)
{
db.delete(TABLE_NAME, null, null);
}
private static class OpenHelper extends SQLiteOpenHelper
{
OpenHelper(Context context)
{
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE" +TABLE_NAME+ "{id INTEGER PRIMERY KEY, editname TEXT, edittel TEXT, editskype TEXT, editaddress TEXT }");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS"+ TABLE_NAME);
onCreate(db);
}
}
}
最佳答案
你有很多基本的 SQL 语法问题。请考虑首先学习一些基本的 SQL 和堆栈跟踪阅读。
在 SQL 关键字(例如
TABLE
)和标识符(例如newtable
)之间添加空格。例如,更改
"CREATE TABLE" +TABLE_NAME+
至
"CREATE TABLE " +TABLE_NAME+
和
"insert into" +TABLE_NAME+
至
"insert into " +TABLE_NAME+
CREATE TABLE
中的括号应该是(
)
而不是{
}
PRIMERY
中的拼写错误,应为PRIMARY
。
可能还有更多;这些只是在查看 SQL 的前 10 秒内发现的问题。
关于java - 编译时: Creation table error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25845944/