无法匹配存储在 SQLite 中的字符串
Can't match string which stored in SQLite
在我的应用程序的一部分中,我从手机获取日期并将其作为字符串存储在 SQLite 数据库中。
当我尝试 select 数据库中具有相同日期的行时,找不到任何匹配结果。
同样在下面的代码中,我试图获取 table 的特定单元格,我确定它与当前日期匹配。但没有匹配。
有什么想法吗?
从手机获取日期并将其作为字符串插入。
String currentDateString = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
MyDB.insertRow(currentDateString);
检查数据库中的日期是否等于移动日期。
if (MyDB.getRow(21).getString(1).toString()==currentDateString)
Toast.makeText(getBaseContext(),"Match",Toast.LENGTH_SHORT).show();
您没有使用 ==
运算符匹配 Java 中的 Strings
。您使用 .equals()
方法,因为 String 不是原始类型。
所以试试这个 -
if (MyDB.getRow(21).getString(1).toString().equals(currentDateString))
字符串与 == 运算符不匹配,因为它是一个对象。
尝试
MyDB.getRow(21).getString(1).toString().equals(currentDateString)
如果您需要,不区分大小写
MyDB.getRow(21).getString(1).toString().equalsIgnoreCase(currentDateString)
还有
确保插入的日期格式与您匹配的
相同
在我的应用程序的一部分中,我从手机获取日期并将其作为字符串存储在 SQLite 数据库中。
当我尝试 select 数据库中具有相同日期的行时,找不到任何匹配结果。
同样在下面的代码中,我试图获取 table 的特定单元格,我确定它与当前日期匹配。但没有匹配。
有什么想法吗?
从手机获取日期并将其作为字符串插入。
String currentDateString = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
MyDB.insertRow(currentDateString);
检查数据库中的日期是否等于移动日期。
if (MyDB.getRow(21).getString(1).toString()==currentDateString)
Toast.makeText(getBaseContext(),"Match",Toast.LENGTH_SHORT).show();
您没有使用 ==
运算符匹配 Java 中的 Strings
。您使用 .equals()
方法,因为 String 不是原始类型。
所以试试这个 -
if (MyDB.getRow(21).getString(1).toString().equals(currentDateString))
字符串与 == 运算符不匹配,因为它是一个对象。
尝试
MyDB.getRow(21).getString(1).toString().equals(currentDateString)
如果您需要,不区分大小写
MyDB.getRow(21).getString(1).toString().equalsIgnoreCase(currentDateString)
还有 确保插入的日期格式与您匹配的
相同