データベースの列が null かどうかを判断するための信頼できる結果を得ることができません。データベースの列がnullまたは文字列値「」を返すかどうかを確認するためにクエリチェックを使用しようとしましたが、何をしても、チェックの結果はその列に何かが格納されているという結果を返します。空です。
空であることを確認するために、アプリからすべてのデータを削除し、デバイスからアンインストールします。そうすれば、データベースの列が空であることがわかります
特定の列が空かどうかを確認するより良い方法はありますか?
列が新しく作成されたデータベースで以前に使用されたことがない場合、その列には何がありますか? それはnullですか、それともシステムによってプレースホルダーとして入れられたものがありますか?
displayAll.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
textToShow.setText(DisplayAllFieldsObjectFromDB());
if (DisplayAllFieldsObjectFromDB() == null) {
Toast.makeText(DisplayTable.this, "TABLE NULL ", Toast.LENGTH_SHORT).show();
} else if (DisplayAllFieldsObjectFromDB() != null) {
Toast.makeText(DisplayTable.this, "TABLE HOLDS A VALUE ", Toast.LENGTH_SHORT).show();
} else if (DisplayAllFieldsObjectFromDB().equals("")) {
Toast.makeText(DisplayTable.this, "TABLE HOLDS EMPTY QUOTES VALUE ", Toast.LENGTH_SHORT).show();
}
}
});
データベース テーブルのコード
// display all data from table
public String getAllFromDB() {
String tableString = "";
String result = "";
Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, null,
null, null, null, null, null);
if (cursor != null) {
// cursor.moveToFirst(); // use only this for getting one row
while (cursor.moveToNext()) { // use only this for getting multiple rows
tableString = cursor.getString(cursor.getColumnIndex(TABLE_STRING));
result += tableString + "\n";
}
}
return result;
}