谁能指出我在 VB 中的登录表单做错了啥(visual studio 2010,mdb)
Posted
技术标签:
【中文标题】谁能指出我在 VB 中的登录表单做错了啥(visual studio 2010,mdb)【英文标题】:can anyone point to me what im doing wrong with my login form in VB (visual studio 2010, mdb)谁能指出我在 VB 中的登录表单做错了什么(visual studio 2010,mdb) 【发布时间】:2014-03-30 09:39:01 【问题描述】:我不知道问题出在哪里,因为我不久前就已经能够使用此代码登录了。
所以在这里,我只是想创建一个登录表单,我稍后会为密码加密,但现在我似乎无法连接到我的 ms2003-2007mdb 文件,它总是显示我的 mssge 无法连接连接,我不久前使用了相同的代码,当尝试结合我的密码加密时它变得混乱,现在我恢复了我的原始登录形式它只是不起作用 所以这就是我所拥有的
导入 System.Data.OleDb
公开课FormLogin
Public Sub login()
Dim con As New OleDb.OleDbConnection
con.ConnectionString = "PROVIDER = Microsoft.JET.OLEDB.4.0; Data Source = ..\debug\admin.mdb"
Dim cmd As OleDbCommand = New OleDbCommand("SELECT uname, pword FROM users where username=admin", con)
Dim uname As String = uname_txtfield.Text
Dim pword As String = pword_txtfield.Text
cmd.Parameters.AddWithValue("uname", uname)
cmd.Parameters.AddWithValue("pword", pword)
Try
con.Open()
Dim read As OleDbDataReader = cmd.ExecuteReader
If read.HasRows Then
read.Read()
If uname = read.Item("uname").ToString And pword = read.Item("pword") Then
FormChckin.Show()
Me.Hide()
ElseIf uname = "Admin" And String.IsNullOrEmpty(pword) Then
Uinfo_lbl.Text = "The Default Username is Admin, password is password"
ElseIf String.IsNullOrEmpty(uname) Or String.IsNullOrEmpty(pword) Then
MsgBox("Enter Username & Password, then try again")
Else
MsgBox("Username and password does not match")
End If
Else
MsgBox("Unable to login")
End If
read.Close()
Catch ex As Exception
MsgBox(ex.ToString)
Finally
con.Close()
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Login_btn.Click
login()
End Sub
结束类
【问题讨论】:
【参考方案1】:您是否尝试删除此代码?如果您正在访问本地数据库文件,我认为您不需要这个,除非您在文件上有用户名和密码。如果是这种情况,您可以将其添加到连接字符串中 cmd.Parameters.AddWithValue("uname", uname) cmd.Parameters.AddWithValue("pword", pword) 让我知道删除这些行是否有帮助。我习惯用 C# 连接到数据库,我还没用过 VB,但我认为这可能会有所帮助。祝你好运!
【讨论】:
当我删除该 system.invalidOperationException 时显示此错误:行/列不存在数据。在 System.Data.OleDb.OleDbDataReader.DoValueCheck(Int32 ordinal) 在 System.Data.OleDb.OleDbDataReader.GetValueCheck(Int32 ordinal) 在 System.Data.OleDb.OleDbDataReader.get_Item(String name) 在 WindowsApplcation8FormLogin.login() 在 ~ ~directory~~ line 17 where line 17 is If uname = read.Item("uname").ToString And pword = read.Item("pword") Then 好的,所以我只是放弃了从头开始的代码顺便说一句,因为 vs 只是想变得不同,它应该是唯一的问题,然后它崩溃了 有时候这总是一个好方法,只是清除受感染的区域就可以清楚地知道下次如何更好地编写它。虽然我知道人们声称只做一次,但通常当我在几周后重新访问我的代码时,我想,哇,我在几周前凌晨 3 点做了什么,然后去重写了一个晚上。祝一切顺利。 哦,我看的不够仔细,当说 username=admin 应该是 'Admin' 时出现另一个错误,但如果这是您的问题,请考虑您的帖子。以上是关于谁能指出我在 VB 中的登录表单做错了啥(visual studio 2010,mdb)的主要内容,如果未能解决你的问题,请参考以下文章
Vue 组件:$emitting 不适用于父子组件。我做错了啥?