【发布时间】:2014-08-20 17:28:46
【问题描述】:
我的 C# 代码有问题。
我需要验证用户名,我在 while 循环中使用了 if 条件,但问题是即使用户名和密码不正确,它也不会执行任何语句。
我已经在数据库中测试了认证查询,输出是正确的。
我尝试过使用这三种不同的解决方案,但均未成功。
这是我的代码:
解决方案 #1
using (OdbcDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
int count = reader.GetInt32(0);
if (count > 0)
{
Response.Write("Welcome!");
}
else
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert('no data.');", true);
}
}
}
解决方案 #2
using (OdbcDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
if (reader.HasRows)
{
Response.Write("Welcome!");
}
else
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert('no data.');", true);
}
}
}
解决方案 #3
using (OdbcDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
if (!String.IsNullOrEmpty(reader[0].ToString()))
{
Response.Write("Welcome!");
}
else
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert('no data.');", true);
}
}
}
【问题讨论】:
-
调试代码时会发生什么?它会进入while循环吗?我的猜测是没有返回任何行,它会跳过它。如果没有,它会到达哪里?
-
请发布命令参数,我的意思是sql查询和sql连接
标签: c#