[求大神]帮忙看看为什么运行出来不管输入的用户名正确与否,都是显示"用户名或者密码错误,请重新输入!"没办法实现成功登录的效果

LEHUIC 2016-03-22 11:43:31
public partial class login : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{

}
SqlConnection conn = new SqlConnection();
SqlCommand cmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();



protected void btn_login_Click(object sender, EventArgs e)
{

string constr =@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|宠物商城.mdf;Integrated Security=True;User Instance=True";
conn.ConnectionString = constr;
conn.Open();
cmd.Connection=conn;

cmd.CommandText = "select * from 用户表 where 用户名='" + username.Text + "' and 密码='" + password.Text + "'";
try
{

da.SelectCommand=cmd;
da.Fill(ds,"用户表");

if (ds.Tables[0].Rows.Count==0)
{"用户名或者密码错误,请重新输入!";
Labino.Text =
username.Focus();
}
else
{
Labino.Text = "恭喜您登陆成功!";
Session["Admin_UserName"] = this.username.Text;
Response.Redirect("~/home.htm");

}
conn.Close();
}
catch (Exception ex)
{
Response.Write("<script >alert('系统错误:" + ex.Message + "!');</script>");

}


}


}
...全文
617 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
东方013 2016-03-24
  • 打赏
  • 举报
回复
加断点,一句句调试,先看看用户名和密码对不对,如果对的话再看看sql语句,实在不行就把sql语句复制到数据库上去执行以下试试
快乐起航2020 2016-03-24
  • 打赏
  • 举报
回复
应该是很简单的功能,调试几次试试
快乐起航2020 2016-03-24
  • 打赏
  • 举报
回复
社断点
正怒月神 版主 2016-03-23
  • 打赏
  • 举报
回复
调试一下sql语句就知道了
zbdzjx 2016-03-23
  • 打赏
  • 举报
回复
在“if (ds.Tables[0].Rows.Count==0)”这句加断点,看一下cmd.CommandText的语句是不是对的,而且,ds.Tables里面有几张表。
LEHUIC 2016-03-23
  • 打赏
  • 举报
回复
引用 1 楼 q363186 的回复:
这一句 da.Fill(ds,"用户表"); 试试不要指定表名。直接fill ds
还是不行
LEHUIC 2016-03-23
  • 打赏
  • 举报
回复
引用 3 楼 dalmeeme 的回复:
确保数据库中用户名和密码字段的数据类型是varchar,而不是char。
是varchar类型,但是还是不行
LEHUIC 2016-03-23
  • 打赏
  • 举报
回复
引用 4 楼 FoxDave 的回复:
debug看一下
是什么意思?还是不行
Justin-Liu 2016-03-23
  • 打赏
  • 举报
回复
debug看一下
dengdengwang 2016-03-23
  • 打赏
  • 举报
回复
11楼方法可行,感觉还是在sql上
dalmeeme 2016-03-23
  • 打赏
  • 举报
回复
确保数据库中用户名和密码字段的数据类型是varchar,而不是char。
小小农民 2016-03-23
  • 打赏
  • 举报
回复
设置断点运行是看看cmd.CommandText 的值是多少,把值在sql 查询工具 中运行下看看结果
楠小南 2016-03-23
  • 打赏
  • 举报
回复
还有楼主的 其他地方是不是也用了ds
不然怎么会放那么高。如果其他地方也用了
那你就判断一下 判断登录的那个tabatable是不是
跟fill的tabatable 一样。要不然ds里面有多个tabatable 你都不知道是那个。
楠小南 2016-03-23
  • 打赏
  • 举报
回复
这一句
da.Fill(ds,"用户表");
试试不要指定表名。直接fill ds
楠小南 2016-03-23
  • 打赏
  • 举报
回复
引用 7 楼 LEHUIC 的回复:
[quote=引用 1 楼 q363186 的回复:] 这一句 da.Fill(ds,"用户表"); 试试不要指定表名。直接fill ds
还是不行[/quote] 先把 try 去掉。有异常第一时间去掉try 然后把再把查询到的数据 打印出来, 看看他返回的是什么。如果总是返回假 就检查sql 语句是否正确。用查询分析器 分析 如果都不行就到sql 看看活动进程 看看你的程序有没有请求sql服务器

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧