Таблица не создана в Использование Sqlite в Android? - PullRequest
0 голосов
/ 26 ноября 2011

Я новичок в 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 Ответ

5 голосов
/ 26 ноября 2011

Попробуйте обновить номер версии базы данных (сейчас у вас он равен 1).Возможно ли, что вы запустили свое приложение и попытались получить доступ к БД до того, как onCreate вашего помощника действительно что-нибудь сделал?Если вы это сделаете, у вас будет пустая БД в версии 1. Если вы не хотите увеличивать номера версий, вы можете альтернативно удалить приложение или очистить его данные, чтобы полностью удалить файл БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...