私はアンドロイドプログラミングを初めて利用していて、実際のsqliteデータベースを構築することができました。データが正しく入力されないと、SQLiteがクラッシュしないようにします
しかし、ユーザーがYYYY/MM/DDの形式で入力する必要がある「有効期限」セクションなど、データが誤って入力された場合、プログラムは誤って入力されるとクラッシュします。クラッシュを避けるためにデータベースに追加される情報を拒否する方法はありますか?以下は
は、データベースを設定し、それぞれの列
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME + " (" + COL_1 + " INTEGER PRIMARY KEY," + COL_2 + " TEXT," + COL_3 + " DATE," + COL_4 + " DATE" + ")");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
public boolean insertData(String Name, String Datereceived, String Expirydate) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_2, Name);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
contentValues.put(COL_3, dateFormat.format(new Date(Datereceived)));
contentValues.put(COL_3, Datereceived);
contentValues.put(COL_4, dateFormat.format(new Date(Expirydate)));
long result = db.insert(TABLE_NAME, null, contentValues);
if (result == -1)
return false;
else
return true;
}
に入力するためのコードであり、ここであなたが行うことができます更新するデータベース
public void UpdateData() {
btnviewUpdate.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isUpdate = myDb.updateData(editTextId.getText().toString(), editname.getText().toString(),
editdate.getText().toString(), editexpiry.getText().toString());
if (isUpdate == true)
Toast.makeText(DatabaseUpdater.this, "Data updated", Toast.LENGTH_LONG).show();
else
Toast.makeText(DatabaseUpdater.this, "Data not updated", Toast.LENGTH_LONG).show();
}
}
);
}
、入力された日付が有効であるかどう – Sush
だけをチェックウルログを共有してください。挿入されていない場合は、挿入を拒否します(ユーザーに警告する)。 –