2011-01-24 54 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));