Aan*_*Aan 2 c# sql-server asp.net
我正在使用C#来学习ASP.NET,我尝试将身份验证代码编写为
SqlCommand command = new SqlCommand("Select [ID] from [Inspector] WHERE [ID] ='111' AND [Password] ='111';", conn);
SqlDataReader dr = command.ExecuteReader();
if (dr[0].ToString() == username)
{
Session["UserAuthentication"] = username;
Session.Timeout = 1;
Response.Redirect("About.aspx");
}
else{
// ...
}
Run Code Online (Sandbox Code Playgroud)
该ID类型是numeric在SQL Server中.
问题是我总是得到例外:
没有数据时无效尝试读取.
在这部分:if (dr[0].ToString() == username).
我试图直接执行确切的SQL语句,我可以得到结果.
你需要遍历读者返回的行 - 使用类似这样的代码:
SqlDataReader dr = command.ExecuteReader();
if(dr.Read())
{
if (dr[0].ToString() == username)
{
Session["UserAuthentication"] = username;
Session.Timeout = 1;
Response.Redirect("About.aspx");
}
else {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
你需要调用.Read()上SqlDataReader至少一次,以实际读取的数据.
如果您计划读取尽可能多的行,则应使用
while (dr.Read())
{
.....
}
Run Code Online (Sandbox Code Playgroud)
并处理返回的多行.