0

ユーザーを挿入してログインテーブルに渡そうとすると、エラーが表示されます。ユーザー名、パスワードをコンストラクターとしてデータベースクラスに渡しています。ログインページにユーザー名とパスワードを挿入したい

             public class Database extends SQLiteOpenHelper{

private static final String DATABASE_NAME = "sample";
private static final int DATABASE_VERSION = 1;
private static final String INSPECTION_CREATE = "CREATE TABLE IF NOT EXISTS login ("
                        + "username TEXT," + "password TEXT);";



public Database(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);

    // TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub
    db.execSQL("DROP TABLE IF EXISTS login");

}
 public void insert_datas(String user,String pass,String table_name){
        SQLiteDatabase db=this.getWritableDatabase();//in this line error comes

         ContentValues initialValues = new ContentValues();

            initialValues.put("user",user);
            initialValues.put("pass",pass);
            long n = db.insert(table_name,user,initialValues);

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

}

4

2 に答える 2

2

データベースを作成していません... onCreate メソッドは空です。また、テーブル作成文字列を他の場所で使用していません。

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(INSPECTION_CREATE);
}

onUpgrade にも少し助けが必要です (テーブルは削除されますが、再作成はされません):

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub
    db.execSQL("DROP TABLE IF EXISTS login");
    onCreate(db);
}

お役に立てれば!

于 2012-05-09T05:07:00.637 に答える
1

dbhelper オブジェクトを使用してオブジェクトを取得SqliteDataBaseする

DataBase dbhelper = new Database(context);

SQLiteDatabase db=dbhelper .getWritableDatabase();
于 2012-05-09T05:11:16.900 に答える