2011-01-24 61 views
4

我想我的數據庫創建一次,也不會改變,但當我的onCreate()是我不能創建數據...源碼的onCreate()的問題

public class EventsData extends SQLiteOpenHelper { 
     private static final String DATABASE_NAME = "events.db"; 
     private static final int DATABASE_VERSION = 1; 


     public EventsData(Context ctx) { 
      super(ctx, DATABASE_NAME, null, DATABASE_VERSION); 
     } 

     @Override 
     public void onCreate(SQLiteDatabase db) { 

      db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + _ID 
       + " INTEGER PRIMARY KEY AUTOINCREMENT, " + TIME 
       + " TEXT NOT NULL," + TITLE + " TEXT NOT NULL);"); 

    //This doesn't work.. 
      db.execSQL("INSERT INTO"+TABLE_NAME+"VALUES(null, 'hello', 'android');"); 
     } 

     @Override 
     public void onUpgrade(SQLiteDatabase db, int oldVersion, 
      int newVersion) { 
      db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); 
      onCreate(db); 
     } 

    } 
+0

把它拿出來...讓持有你的數據庫的虛擬類,並與方法來啓動,修改,保存,......你的數據庫。在全局變量中初始化該類,並根據需要調用該類的方法。這樣你也可以更精確地控制數據庫。 – Mascarpone 2011-01-24 11:06:52

+0

什麼是你的概率?你得到什麼錯誤?請粘貼logcat錯誤 – 2011-01-24 11:09:49

回答

4

db.execSQL("INSERT INTO"+TABLE_NAME+"VALUES(null, 'hello', 'android'); 

缺少圍繞TABLE_NAME空間。如果您正好執行此行,則無法工作。

+0

你是正確的空間...我是粗心的...謝謝! – stelios 2011-01-24 13:11:25

0

1>你打開數據庫?

2>此外,創建另一個類,這將具有實用方法等的openDatabase,CREATETABLE,deleteTable,insertValues等,用於INSERT語句

databaseDb.execSQL(INSERT INTO TABLE_NAME值

語法示例( 'Chiranjib', '納吉',1));