Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MySQL数据库的VB.NET登录表单_Mysql_Vb.net - Fatal编程技术网

使用MySQL数据库的VB.NET登录表单

使用MySQL数据库的VB.NET登录表单,mysql,vb.net,Mysql,Vb.net,有人能帮我做一下吗 我创建了一个名为dbhr的数据库和一个名为user的表,其中有两个字段“username”和“password”,数据类型为VARCHAR。 我有一个带有两个文本框(tbxUsername、tbxPassword)和一个OK按钮的登录表单。我已连接数据库以验证用户名和密码。但它总是给我错误的密码信息。我不知道我哪里出错了。 请帮忙 我使用MySQL Workbench 6.1 提前谢谢 下面是VB.NET登录按钮代码 导入MySql.Data.MySqlClient 公共类登

有人能帮我做一下吗

我创建了一个名为dbhr的数据库和一个名为user的表,其中有两个字段“username”和“password”,数据类型为VARCHAR。 我有一个带有两个文本框(tbxUsername、tbxPassword)和一个OK按钮的登录表单。我已连接数据库以验证用户名和密码。但它总是给我错误的密码信息。我不知道我哪里出错了。 请帮忙

我使用MySQL Workbench 6.1

提前谢谢

下面是VB.NET登录按钮代码

导入MySql.Data.MySqlClient
公共类登录
将mydbcon设置为MySqlConnection
Dim命令作为MySqlCommand
'TODO:插入代码以使用提供的用户名和密码执行自定义身份验证
"(见http://go.microsoft.com/fwlink/?LinkId=35339).  
'然后可以将自定义主体附加到当前线程的主体,如下所示:
'My.User.CurrentPrincipal=CustomPrincipal
'其中CustomPrincipal是用于执行身份验证的IPrincipal实现。
'随后,My.User将返回封装在CustomPrincipal对象中的标识信息
'例如用户名、显示名称等。
Private Sub OK_Click(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理OK。单击
mydbcon=新的MySqlConnection
mydbcon.ConnectionString=“server=localhost;userid=root;password=rootword;database=hrdb”
作为MySqlDataReader的Dim读取器
尝试
mydbcon.Open()
将查询设置为字符串
Query=“select*from user where username=”&tbxUsername.Text&“、password=”&tbxPassword.Text&“”
COMMAND=newmysqlcommand(查询,mydbcon)
reader=COMMAND.ExecuteReader
将计数设置为整数
计数=0
边读边读
计数=计数+1
结束时
如果计数=1,则
MessageBox.Show(“用户名和密码正确”)
如果计数大于1,则
MessageBox.Show(“用户名和密码重复”)
其他的
MessageBox.Show(“用户名和密码错误”)
如果结束
mydbcon.Close()
Catch ex作为MySqlException
MessageBox.Show(例如Message)
最后
mydbcon.Dispose()
结束尝试
端接头
请单击以下链接查看数据库表记录和数据类型


点击

行中有一些额外的空格

Query=“select*from user where username=”&tbxUsername.Text&“、password=”&tbxPassword.Text&“”
我会换成

Query=String.Format(“从用户名={0}和密码={1}'的用户中选择*,Me.tbxUsername.Text.Trim(),Me.tbxPassword.Text.Trim())

我会使用
String.Format()
使其更清晰,减少忽略这些额外空格的机会。

为什么不在本文中放置按钮代码,而不是提供指向某个下载站点的链接?添加了按钮代码。我还必须提供数据库设置,这就是为什么我附加屏幕截图。好的。。。现在你总是得到什么信息?顺便提一下从外观上看,您正在存储未加密的密码,这是您的意图吗?我对MySQL非常陌生,我不知道在创建数据库时应该考虑的所有安全特性和事项。我刚做了一张桌子,从YouTube视频中学习。我想我可以成功地创建一个数据库。我不知道加密和所有这些,如果可以,请给我一些关于加密的信息。我给了用户名abc和密码ab,但我得到的信息是“用户名和密码是错误的”。但它们存在于数据库中。对不起,我已经离开了。。。通过加密,我想在将密码保存到数据库之前对其进行加密。因此,在用于创建用户的代码中。用户将输入他们选择的密码,在将其保存到数据库中之前对其进行加密。在登录代码中,您将再次加密输入的密码,并将加密密码与数据库中的密码进行比较。网上有很多加密的例子。你能告诉我我在哪里留了多余的空间吗?如果我删除了多余的空格,那么使用我的格式比使用你的格式有什么缺点吗?我只是想知道我的编码是否更糟
where username=''“
在'和'之间”,同样在密码上。与
where username='{0}'相比,
中的额外空间非常明显“。在这样一个简单的情况下,这是一个偏好的问题,尽管我认为使用String.Format不仅仅是因为它的清晰性。在功能上,它们是相同的。@user3765415顺便问一下,这解决了您的问题吗?非常感谢。你的代码运行得很好,在删除了额外的空格后,正如你所说,我的代码也运行得很好@Mych提到了我未加密的密码。我不知道怎么把它加密。顺便说一句,我的问题解决了。