我无法获得可靠的结果来判断数据库的列是否为空。我尝试使用查询检查来查看数据库的列是否返回 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;
}