Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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 数据库中设置为公共字符串的字符串_Mysql_Vb.net_Visual Studio 2010 - Fatal编程技术网

Mysql 数据库中设置为公共字符串的字符串

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作为事件参

从上一个问题的答案来看,推理仍然适用于这里,但这一次是另一个问题。有一个登录系统(Loginvb.vb),我为我正在创建的启动器获得了它,我想知道两件事:

  • 是否有更好的方法对数据库进行登录检查(如 更安全)(登录样式将具有基于web的注册 通过PHP脚本进行设置
  • 有没有办法在数据库中获取某个列(标记为access)并将其放入 作为一个公共字符串,这样我就可以检查它是否等于 标记为Main.vb的不同表单
  • 以下是当前登录检查:

    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
    列?很好,看到两次登录的大小差异,我觉得有点愚蠢,因为我想了太多了。哈哈,这个选项很严格,不确定我是否打开或关闭了,只是醒来在登录系统上工作。是的访问权限在同一列中。这有效。