我真的很抱歉问这个愚蠢的问题。过去1小时,我一直在探究这个错误,无法从我眼中发现问题。如果有人能帮我找到问题,我会很感激。我知道这不是一个错误处理博客,但我没有选择。以下是我的DB代码:语法错误使用sqlite
private static final String DATABASE_NAME = "RCdata";
private static final String DATABASE_TABLE = "events";
private static final int DATABASE_VERSION = 1;
private static final String TAG = "RCDataBaseAdapter";
private static final String KEY_ROWID = "_id";
private static final String KEY_EVENT = "eventsname";
private static final String KEY_DESCRIPTION ="description";
// Database creation sql statement
private static final String DATABASE_CREATE_EVENTS =
"create table events (_id integer primary key autoincrement, "
+ "eventsname text not null, "
+ "description text not null);";
private Context context;
private DatabaseHelper DBHelper;
private SQLiteDatabase db;
public RCDatabaseAdapter(Context ctx)
{
//super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
this.context = ctx;
DBHelper = new DatabaseHelper(context);
// TODO Auto-generated constructor stub
}
private static class DatabaseHelper extends SQLiteOpenHelper
{
DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(DATABASE_CREATE_EVENTS);
//db.execSQL(DATABASE_CREATE_Priests);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
Log.w(TAG, "Upgrading database from version " + oldVersion
+ " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS Events");
onCreate(db);
}
}
//---opens the database---
public RCDatabaseAdapter open() throws SQLException
{
db = DBHelper.getWritableDatabase();
return this;
}
//---closes the database---
public void close()
{
DBHelper.close();
}
public long insertEvent(String eventname, String description)
{
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_EVENT, eventname);
initialValues.put(KEY_DESCRIPTION, description);
return db.insert(DATABASE_TABLE, null, initialValues);
}
//---deletes a particular event---
public boolean deleteEvent(long rowId)
{
return db.delete(DATABASE_CREATE_EVENTS, KEY_ROWID +
"=" + rowId, null) > 0;
}
public Cursor getAllTitles()
{
return db.query(DATABASE_CREATE_EVENTS, new String[] {
KEY_ROWID,
KEY_EVENT,
KEY_DESCRIPTION},
null,
null,
null,
null,
null);
}
//---retrieves a particular title---
public Cursor getEvent(long rowId) throws SQLException
{
Cursor mCursor =
db.query(true, DATABASE_CREATE_EVENTS, new String[] {
KEY_ROWID,
KEY_EVENT,
KEY_DESCRIPTION
},
KEY_ROWID + "=" + rowId,
null,
null,
null,
null,
null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
我收到以下错误:
near “create”: syntax error: ,
while compiling: SELECT _id,
eventsname, description
FROM create table events (_id
integer primary key
autoincrement, eventsname
text not null, description text
not null);
您可以在使用DATABASE_CREATE_Events的地方添加代码吗?好像你正在尝试从表中“选择”数据,同时传递一个'create'查询。 – abhinav
我编辑了上面的代码。感谢您的发起 – user1031746
DATABASE_CREATE_EVENTS我已将名称更改为全部大写,以解决可能存在的问题,但仍然收到相同的错误。 – user1031746