package company.mystorage.com.mystorage;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper{
private static final String DATABASE_NAME = "mystorage.db";
private static final String TABLE_NAME = "userlist";
public static final String COLUMN_1 ="Id";
private static final String COLUMN_2 = "username";
private static final String COLUMN_3 = "password";
SQLiteDatabase db;
public DatabaseHelper(Context context) {
// database is created when constructor is called.
super(context, DATABASE_NAME, null, 1);
// to invoke onCreate() and onUpgrade() methods to create the tables
SQLiteDatabase db = this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db){
db.execSQL("create table " + TABLE_NAME + "("
+ COLUMN_1 +" INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COLUMN_2 +" TEXT, "
+ COLUMN_3 +" TEXT)"
);
}
public boolean insertData(String username, String password){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COLUMN_2, username);
contentValues.put(COLUMN_3, password);
long result = db.insert(TABLE_NAME, null, contentValues);
if (result == -1)
return false;
else
return true;
}
public boolean searchPass(String user){
db = this.getReadableDatabase();
String query = "select * from " + TABLE_NAME + " where " + COLUMN_2 + " = " + "'" + user + "'";
Cursor cursor = db.rawQuery(query, null);
cursor.moveToFirst();
if (cursor.getCount() > 0) {
return true;
}
cursor.close();
db.close();
return false;
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+ TABLE_NAME);
onCreate(db);
}
}
このコードはデータベースを検索し、データベースにユーザーを追加する機能も備えています。コードをデバッグしようとしましたが、onCreateが呼び出されたときにクラッシュしたことが示されました。私はonCreateをチェックしましたが、クエリは正しく実行されています。私はログインしてアンドロイドにサインアップしていますが、sqliteデータベースを使用するとonCreateでクラッシュします
編集*これを変更しました。しかし、それはまだクラッシュした。
で
this
を使用していないスタックオーバーフローにあなたのクラッシュのスタックトレース –ようこそ投稿してください! [ツアー](https://stackoverflow.com/tour)、 を見て、[ヘルプセンター](https://stackoverflow.com/help)、特に を読んでください[どのようにして私は良い質問をしますか?](https://stackoverflow.com/help/how-to-ask) と[ここではどのような話題がありますか?](https://stackoverflow.com/help/on-トピック)。 –