【发布时间】:2018-11-29 23:20:12
【问题描述】:
我正在登录 asp.net。从数据库中获取用户的查询总是返回一个空集,即使应该有一行返回。
我正在使用带有 c# 的 Connector/NET
我的查询是通过这样声明的电子邮件获取用户:select * from users where email = '@email';
在数据库中我有两行:test1@example.com 和 test2@example.com
我的代码如下所示:
UserByEmail 是一个包含如上所示查询的字符串。
MySqlCommand query = new MySqlCommand(UserByEmail, db);
db.Open();
query.Parameters.AddWithValue("@email", email);
MySqlDataReader reader = query.ExecuteReader();
if(reader.Read()){
/* Do stuff */
}
db.Close();
当我使用任何测试用例这样运行它时,reader.HasRows 属性总是返回 false。我已将查询直接更改为:
- select * from users;
- select * from users where email = 'test1@example.com';
对于他们两个,后面都有行。所以问题是当我使用参数 @email 和 query.Parameters.AddWithValue("@email", email);.
知道这里发生了什么吗?我一直在寻找这个问题,但一无所获。代码与文档示例中的代码几乎相同(Connector/NET Tutorials: Parameters)
【问题讨论】: