[VB.NET]登陆代码问题!!

前端之家收集整理的这篇文章主要介绍了[VB.NET]登陆代码问题!!前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
登陆代码问题!! 这是我的登录界面中 确定中的代码 可是输入了和数据库对应的密码 却显示密码错误 求高手详解 Dim strsql As String Dim cn As New sqlClient.sqlConnection Dim rs As New DataSet cn.ConnectionString = "server=COMPUTER;Database=NEW;uid=sa;Password=; " cn.Open() strsql = "select 密码 from 登录 where 用户名= '' " & 用户登录_Renamed.Text & " '' " Dim da As New sqlClient.sqlDataAdapter(strsql,cn) Dim count As Int32 = da.Fill(rs) If count = 0 Then MsgBox( "用户名不正确 ") Else If rs.Tables(0).Rows(0).Item(0).ToString = Text1.Text Then MsgBox( "登录成功 ") Else MsgBox( "密码错误 ") End If End If __________________________________________________________________________ 注意看看有没有空格在里面 __________________________________________________________________________ 我这里没有错误... __________________________________________________________________________ 完全登录正常... __________________________________________________________________________ 您可以用 MsgBox(rs.Tables(0).Rows(0).Item(0).ToString) 查看一下取到的是不是您要的内容。 __________________________________________________________________________ 就是说 rs.Tables(0).Rows(0).Item(0).ToString 和 Text1.Text 是不是匹配。 __________________________________________________________________________ MsgBox(rs.Tables(0).Rows(0).Item(0).ToString) 怎么查看 __________________________________________________________________________ 快疯了 __________________________________________________________________________ 在SQL查询分析器中输入这段代码显示如下 服务器: 消息 156,级别 15,状态 1,行 1 在关键字 ''As '' 附近有语法错误。 服务器: 消息 156,级别 15,状态 1,行 9 在关键字 ''Then '' 附近有语法错误。 服务器: 消息 170,级别 15,状态 1,行 12 第 12 行: ''. '' 附近有语法错误。 __________________________________________________________________________ 看上去好像没什么错啊!!! __________________________________________________________________________ 我仔细看过了没有多余的空格在里面啊 __________________________________________________________________________ MsgBox(rs.Tables(0).Rows(0).Item(0).ToString) 这一句加在 Dim count As Int32 = da.Fill(rs) 这一句之后,运行看看内容到底是什么? __________________________________________________________________________ 提示密码错误,由此可以知道你的数据库中的语句没有问题的. 现在你可以在这里加个对话框看看 里面的数值了. 比如: __________________________________________________________________________ MessageBox.Show(rs.Tables(0).Rows(0).Item(0).ToString + vbCrLf + Text1.Text) ''加上这句看得到的字符自己比一下 __________________________________________________________________________ If count = 0 Then MsgBox( "用户名不正确 ") Else MessageBox.Show(rs.Tables(0).Rows(0).Item(0).ToString + vbCrLf + Text1.Text) ''加上这句看得到的字符自己比一下 If rs.Tables(0).Rows(0).Item(0).ToString = Text1.Text Then MsgBox( "登录成功 ") Else MsgBox( "密码错误 ") End If End If ''忘了说那里加了 __________________________________________________________________________ 你抓一下sql语句试试,看对不对 __________________________________________________________________________ MsgBox(rs.Tables(0).Rows(0).Item(0).ToString) 这一句加在 Dim count As Int32 = da.Fill(rs) 这一句之后,运行看看内容到底是什么? 运行了后是123 我输入密码框中的密码也是123 可是提示密码错误 __________________________________________________________________________ If count = 0 Then MsgBox( "用户名不正确 ") Else MessageBox.Show(rs.Tables(0).Rows(0).Item(0).ToString + vbCrLf + Text1.Text) ''加上这句看得到的字符自己比一下 If rs.Tables(0).Rows(0).Item(0).ToString = Text1.Text Then MsgBox( "登录成功 ") Else MsgBox( "密码错误 ") End If End If 这个运行后也是123 和数据库中的一样 就是输入到密码框就密码错误 __________________________________________________________________________ If count = 0 Then MsgBox( "用户名不正确 ") Else If rs.Tables(0).Rows(0).Item(0).ToString.Trim() = Text1.Text Then MsgBox( "登录成功 ") Else MsgBox( "密码错误 ") End If End If __________________________________________________________________________ 你把 对话框中的东西 全部 copy出来看看? __________________________________________________________________________ 换一下: 对话框: MessageBox.Show(rs.Tables(0).Rows(0).Item(0).ToString + " '' "+ vbCrLf + Text1.Text+ " '' ") __________________________________________________________________________ 你也可查看一下你从数据库中读出的 rs.Tables(0).Rows(0).Item(0)的长度,如果不等于你输入的长度的话,用Trim()把空格去掉就可以了!我以前也遇到过!弄了一个下午呵呵!挺郁闷的! __________________________________________________________________________ If count = 0 Then MsgBox( "用户名不正确 ") Else If rs.Tables(0).Rows(0).Item(0).ToString.Trim() = Text1.Text Then MsgBox( "登录成功 ") Else MsgBox( "密码错误 ") End If End If 用这个成功了 谢谢了 谢谢帮助过的人了 __________________________________________________________________________ 从安全的角度来讲,你应该把用户名错误和密码错误,放在一个 "错误提示 "里...告诉用户:用户名或密码错误.... __________________________________________________________________________ 你的登录代码怎么写的这么的复杂呢.其实登录也没有必要写这么复杂吧. sqlConnection con实际一下----打开----命令语句sqlCommand-----在用sqlDataReader去读---- 判断一下if(dr.Read())------关闭数据库就可以了. 我怎么看你的上面写的那么的复杂呢! __________________________________________________________________________ 其实其中的sql语句也是很简单的. 对了你好像用的不是存储过程做的哟.那也没什么,你可以用下面的语句 select * from 登录表名 where 你所建表中的用户名= '' "+界面文本框中的内容+ " '' and 你所建表中的用户名密码= '' "+界面文本框中的内容+ " '' 这样就可以了呀 __________________________________________________________________________

猜你在找的VB相关文章