您的位置:首页 > 编程语言 > VB

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

2008-12-28 11:16 344 查看



<script type="text/javascript"><!--
google_ad_client = "pub-8333940862668978";
/* 728x90, 创建于 08-11-30 */
google_ad_slot = "4485230109";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

登陆代码问题!!
这是我的登录界面中 确定中的代码 可是输入了和数据库对应的密码 却显示密码错误

求高手详解

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 你所建表中的用户名密码= '' "+界面文本框中的内容+ " ''

这样就可以了呀
__________________________________________________________________________
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息