【发布时间】:2014-02-09 14:46:41
【问题描述】:
我正在开发一个 Android 应用程序,我希望在我的 SQL 查询中的 WHERE 条件中有两个单独的字符串。
这是我的代码:
String query=" SELECT * FROM "+USER_TABLE+" where Username=? COLLATE NOCASE and Password=?";
Cursor logincursor= database.rawQuery(query, new String[]{username,password})
if (logincursor.moveToFirst()) {
user.UserName = logincursor.getString(logincursor
.getColumnIndex("Username"));
user.Password =new EncryptDecrypt().decrypt(logincursor.getString(logincursor
.getColumnIndex("Password")));
user.FullName = logincursor.getString(logincursor
.getColumnIndex("Fullname"));
user.UserID = logincursor.getInt(logincursor
.getColumnIndex("UserID"));
user.EmployeeID = logincursor.getInt(logincursor
.getColumnIndex("EmployeeID"));
}
请提出一个在我的 Android 应用中完成此任务的好方法。
【问题讨论】:
-
当我使用字符串作为 where 条件时,我没有从我的应用程序中获取任何值
-
考虑在问题中添加相关代码。您发布的 SQL 没有任何问题。
-
@laalto 我已根据您的评论更改了我的问题...
-
仍然没有什么可以证明这个问题。至少你没有使用来自
rawQuery()的Cursor返回值。 -
如果你没有得到任何数据,
where条件不匹配任何行...还有一些实际信息可以重现问题(例如,示例数据和参数) .但是,密码看起来很可疑,因为它似乎在数据库中被加密,并且在传递给查询时可能没有加密。
标签: android sql sqlite android-sqlite