我正在尝试从单行读取单个列。执行查询后,不会返回任何行,但会有字段。
当我查看阅读器时,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,但仍然没有行。
为什么我没有返回任何行?
谢谢,加里
答案 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";