SQL Server查询不返回任何行

时间:2015-10-02 17:04:23

标签: c# sql sql-server

我正在尝试从单行读取单个列。执行查询后,不会返回任何行,但会有字段。

当我查看阅读器时,HasRows为false,但字段数为1。

string sql = "select userid from aspnet_Membership where loweredemail = '@email'";

SqlCommand sqlCommand = new SqlCommand(sql, THOGConnection);

string emailAddress = (string)account["ree_thogemail"];
emailAddress = emailAddress.ToLower();
sqlCommand.Parameters.AddWithValue("@email", emailAddress);

SqlDataReader reader = sqlCommand.ExecuteReader();

while(reader.Read())
{
    userId = (Guid)reader["userid"];
}  

如果我选择行中的所有列,则字段数为21,但仍然没有行。

为什么我没有返回任何行?

谢谢,加里

2 个答案:

答案 0 :(得分:2)

你不需要在@email周围使用'。使用:

string sql = "select userid from aspnet_Membership where loweredemail = @email"

实际上它没有返回任何值,因为在有loweredemail = '@email'的记录时没有loweredemail = 'someone@example.com'的记录。
使用参数时,不需要单引号。

答案 1 :(得分:0)

您的SQL查询中存在语法错误:

string sql = "select userid from aspnet_Membership where loweredemail = '@email'";

应该如下

string sql = "select userid from aspnet_Membership where loweredemail = @email";