Mysql 数据库中设置为公共字符串的字符串
从上一个问题的答案来看,推理仍然适用于这里,但这一次是另一个问题。有一个登录系统(Loginvb.vb),我为我正在创建的启动器获得了它,我想知道两件事:Mysql 数据库中设置为公共字符串的字符串,mysql,vb.net,visual-studio-2010,Mysql,Vb.net,Visual Studio 2010,从上一个问题的答案来看,推理仍然适用于这里,但这一次是另一个问题。有一个登录系统(Loginvb.vb),我为我正在创建的启动器获得了它,我想知道两件事: 是否有更好的方法对数据库进行登录检查(如 更安全)(登录样式将具有基于web的注册 通过PHP脚本进行设置 有没有办法在数据库中获取某个列(标记为access)并将其放入 作为一个公共字符串,这样我就可以检查它是否等于 标记为Main.vb的不同表单 以下是当前登录检查: Public Sub-login\u单击(发送者作为对象,e作为事件参
Public Sub-login\u单击(发送者作为对象,e作为事件参数)处理登录。单击
如果txtuserName.Text=”“或txtpassWord.Text=”“,则
MsgBox(“在登录之前,您无法继续…(笨蛋=p)”)
其他的
'连接到数据库
Dim connect作为MySqlConnection
connect=newmysqlconnection()
connect.ConnectionString=“服务器=127.0.0.1;用户id=sc;密码=derp;数据库=sclaunch”'不是实际登录;)
尝试
connect.Open()
将myerror捕获为MySqlException
MsgBox(“连接到数据库时出错。请重试!”)
结束尝试
'SQL查询以获取详细信息
Dim myAdapter作为新的MySqlDataAdapter
Dim SQLQUERY=“从登录名中选择*,其中用户名=”+txtsername.Text+“,密码=”+txtspassword.Text+“”
将myCommand设置为新的MySqlCommand()
“我试图做的事情失败了:(
Dim sql22作为MySqlConnection
sql22=新的MySqlConnection()
sql22.ConnectionString=“从登录名中选择*,其中access=”
'失败尝试结束'
myCommand.Connection=connect
myCommand.CommandText=sqlquery
'启动查询
myAdapter.SelectCommand=myCommand
将mydata设置为MySqlDataReader
mydata=myCommand.ExecuteReader
'以检查用户名和密码并验证登录
如果mydata.HasRows=0,则
MsgBox(“无效登录”)
其他的
'失败测试xD
Label3.Text=sql22
MsgBox(“您现在已登录!”)
如果结束
如果结束
端接头
在我编写代码的过程中,我基本上学到了越来越多的东西。我喜欢尝试和错误,以及你陷入困境的时刻=/(很抱歉管理员或其他人修复了网站xD中仍然没有的标签问题)假设包含凭据的同一个表
login
也包含要检索的access
列,那么我已经更改了您的许多代码
Dim sqlquerry = "Select * From login where username = @name AND password=@pwd"
Dim myCommand As New MySqlCommand(sqlquery, connect)
myCommand.Parameters.AddWithValue("@name", txtuserName.Text)
myCommand.Parameters.AddWithValue("@pwd", txtpassWord.Text)
Dim mydata = myCommand.ExecuteReader
If mydata.HasRows = False Then
MsgBox("Invalid Login")
Else
' the same record that contains the credentials contains the access field'
mydata.Read()
Label3.Text = mydata("access").ToString()
MsgBox("You are now Loged In!")
End If
我改变了什么:
- 删除了字符串连接并添加了适当的参数
- 删除了myAdapter及其所有引用(不需要,您不需要 填充数据表/数据集)
- 删除了sql22及其所有引用。这是一个连接,您 试着像命令一样使用
- 修正了HasRows上的检查(返回一个布尔值而不是一个整数。你是吗 使用选项(关闭?)
access
列?很好,看到两次登录的大小差异,我觉得有点愚蠢,因为我想了太多了。哈哈,这个选项很严格,不确定我是否打开或关闭了,只是醒来在登录系统上工作。是的访问权限在同一列中。这有效。