ASP.NET的web开发中,关于在GRIDVIEW中取列的值问题求解答?
先截图看我写的代码我用重定向跳转页面,就是用户和密码两个文本框,一个按钮登录,当我点击按钮时我判断在数据库中是否有值,如果有成功跳转,如果只是用户名不正确,就跳转到提示用...
先截图看我写的代码
我用重定向跳转页面,就是用户和密码两个文本框,一个按钮登录,当我点击按钮时我判断在数据库中是否有值,如果有成功跳转,如果只是用户名不正确,就跳转到提示用户名错误的页面,反之如果密码不正确就跳转到提示密码错误的页面中去,怎么做?
我上面的代码只能判断成功登录正确,但是如果我把密码或者用户名其中一个输入错误它就报错了?求解答?似乎是dt.rows[0][0]没有值,但是这个要怎么做?
我是新手,请尽量详细点,谢谢 展开
我用重定向跳转页面,就是用户和密码两个文本框,一个按钮登录,当我点击按钮时我判断在数据库中是否有值,如果有成功跳转,如果只是用户名不正确,就跳转到提示用户名错误的页面,反之如果密码不正确就跳转到提示密码错误的页面中去,怎么做?
我上面的代码只能判断成功登录正确,但是如果我把密码或者用户名其中一个输入错误它就报错了?求解答?似乎是dt.rows[0][0]没有值,但是这个要怎么做?
我是新手,请尽量详细点,谢谢 展开
3个回答
展开全部
sql语句是要查询数据库中和你输入的用户名密码相匹配的数据,如果你输入错误的密码的话,就查询不到对应的数据,SelectBy返回一个空的DataTable,这时你对DataTable进行操作就会报错。
你这个需求的话:
public string Login(string userName, string passWord)
{
string strSql = string.Format("select * from dbo.Tofan where name'{0}' ",userName);
DataTable dt = SqlHelp.SelectBy(strSql);
string message = string.Empty;
if (dt != null)
{
if (dt.Rows[0]["pass"].ToString() == passWord)
{
message = "Success!";
}
else
{
message = "密码不正确!";
}
}
else
{
message = "用户名不存在!";
}
return message;
}
追答
把sql语句里面的“and pass=='{1}'”去掉。
先查询数据库中是否有该用户的数据。如果有该用户的数据,则取出来,进入下一步逻辑判断。否则提示“用户名不存在”。
然后判断数据库中该用户的密码与输入的密码是否一致,如果一致,则成功。否则提示“密码不正确”。
展开全部
如果你输入错误的用户名或者密码的话,你那个 table会是空的,所以会出错。如果非要按照你的逻辑去操作的话,你只需要判断table中的rows是不是为空的,是为空的话那就说明账号或者密码错误,否则就表示账号密码是正确的。
追答
其实这种情况下不用使用Datatable,用Datareader最简单。你上面的那个错误,是因为即使没有记录,datatable也不是为空的,应该同时判断dt和dt.Rows不为空,同时dt.Rows.Count必须大于0.如果使用DataReader的话,你就只需要判断DataReader.reader()是不是存在即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
取textbox1的文本框内值,查询数据库,输出数据库里面的密码,判断密码与用户输入的是否一致,就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询