在Android中使用Sqlite时未创建表?

时间:2011-11-25 21:02:09

标签: android sqlite

我是android的新手。我已经浏览了android文档并且我用谷歌搜索了它,但我很困惑为什么我的代码返回没有这样的表错误。

我想创建一个名为demo的数据库,我想创建一个包含三列的表学生。

这是我的代码:

    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;



    public class DatabaseHelper extends SQLiteOpenHelper {


        static final String dbName="demo";

    public DatabaseHelper(Context context) {
            super(context, dbName, null, 1);
            // TODO Auto-generated constructor stub
        }



    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("Create table IF NOT EXISTS  student(title text,address text,gender text)");



    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub

    }

    public void insert_datas(String title,String artist,String patharray,String table_name){
        SQLiteDatabase db=this.getWritableDatabase();

         ContentValues initialValues = new ContentValues();

            initialValues.put("title",title);
            initialValues.put("address",address);
            initialValues.put("gender",gender);

            long n = db.insert(table_name,title,initialValues);

            System.out.println("n"+n);
            db.close();
    }

    public Cursor get_datas(){
        SQLiteDatabase db=this.getReadableDatabase();
           Cursor cur=db.rawQuery("SELECT * FROM student",null);

           return cur;

    }

    }

这就是我如何调用DatabaseHelper类:

    public class MYActivity extends Activity{

    DatabaseHelper dbAdapter;
    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.customlist);
              dbAdapter = new DatabaseHelper(this);

              dbAdapter.insert_datas("test","test","test","student");

    }

}

我的错误

**11-26 02:10:00.210: INFO/SqliteDatabaseCpp(27151): sqlite returned: error code = 1, msg = no such table: student, db=/data/data/com.player.activites/databases/demo
11-26 02:10:00.210: ERROR/SQLiteDatabase(27151): android.database.sqlite.SQLiteException: no such table: student: , while compiling: INSERT INTO studenty(title,address,gender) VALUES (?,?,?)**

由于

1 个答案:

答案 0 :(得分:5)

尝试升级数据库版本号(现在将其设置为1)。您是否有可能运行您的应用程序并尝试访问数据库,然后您的帮助者onCreate实际上做了什么?如果你这样做,你将在版本1上有一个空数据库。如果你不想增加你的版本号,你可以选择卸载你的应用程序或清除它的数据来完全删除数据库文件。