2011-12-12 95 views
0

我真的很抱歉问这个愚蠢的问题。过去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); 
+1

您可以在使用DATABASE_CREATE_Events的地方添加代码吗?好像你正在尝试从表中“选择”数据,同时传递一个'create'查询。 – abhinav

+0

我编辑了上面的代码。感谢您的发起 – user1031746

+0

DATABASE_CREATE_EVENTS我已将名称更改为全部大写,以解决可能存在的问题,但仍然收到相同的错误。 – user1031746

回答

1

您的getAllTitles方法,deleteEventgetEvent都使用create语法查询来获取记录。您需要将适当的语法传递给query方法。文档here 例如,您的getEvent方法可能会像这样工作。

db.query(true, "events", new String[] { 
        KEY_ROWID, 
        KEY_EVENT, 
        KEY_DESCRIPTION      
        }, 
        KEY_ROWID + "=" + rowId, 
        null, 
        null, 
        null, 
        null, 
        null); 
+0

非常感谢你。我从http://www.devx.com/wireless/Article/40842/1763?supportItem=4获取了这段代码,我是android新手,并尝试首次连接到数据库。我想知道为什么会出现这种差异,我相信我很难弄清楚。有效。有什么我可以通过例子学习的数据库网站吗?例如,如果我有数据库的多个表,我是否需要为每个表创建所有的get,insert,update方法? – user1031746