c#,SQL验证登录

SunshineNBB 2018-04-24 10:03:14
//查询语句
string sqlstr = null;
//链接数据库语句,计算机用户链接
string constr = "server=MSI\\SQLEXPRESS01;database=db_RC;integrated security=SSPI";
if (manager.Checked)
{
sqlstr = "select mno,pawd from dbo.manager where mno=@nametxt";
}
else
{
sqlstr = "select uname,pawd from dbo.user where uname=@nametxt";
}
SqlConnection myconn = new SqlConnection(constr);

myconn.Open();
SqlCommand mycom = new SqlCommand(sqlstr, myconn);
mycom.Parameters.Add("@nametxt", SqlDbType.VarChar, 30).Value = nametext.Text;
SqlDataReader sqlDR = mycom.ExecuteReader();
if (!sqlDR.Read())
{
MessageBox.Show("用户名错误,请重新输入!", "ERROR");
nametext.Text = "";
pawdtext.Text = "";
nametext.Focus();
}
else
{
if (sqlDR["pawd"].ToString().Trim() == pawdtext.Text.Trim())
MessageBox.Show("登陆成功!");
this.Hide();
if (manager.Checked)
{
Mindex mindex = new Mindex
{
name = nametext.Text
};
mindex.Show();

}
else
{
uindex uindex = new uindex
{
name = nametext.Text
};
uindex.Show();
}
myconn.Close();
}
先判断管理员还是用户登录,然后给sqlstr赋值。但是读取数据库返回值时候,只有管理员可以成功,而用户的sqlDR为空,请问怎么处理
...全文
703 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
simaqingtian 2018-05-28
  • 打赏
  • 举报
回复
用户表user 里没有对应用户 或者 manager.Checked 这个没选对吧
smthgdin_020 2018-05-22
  • 打赏
  • 举报
回复
报什么错误先?
牧歌ing 2018-05-21
  • 打赏
  • 举报
回复
引用 2 楼 SunshineNBB 的回复:
单步调试出来就是到 SqlDataReader sqlDR = mycom.ExecuteReader();这里报错,看监视里sqlDR为null,但就是找不出哪里错了
F11调到这个方法里面去不就知道了? 不行的话 把 "select uname,pawd from dbo.user where uname=@nametxt";这段sql放到SQLServer中执行 看有没有结果
SunshineNBB 2018-04-24
  • 打赏
  • 举报
回复
单步调试出来就是到 SqlDataReader sqlDR = mycom.ExecuteReader();这里报错,看监视里sqlDR为null,但就是找不出哪里错了
xuzuning 2018-04-24
  • 打赏
  • 举报
回复
既然是查询出错,你就应该去看错误报告 管理员也是用户,没必要用单独的表管理

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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