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 我怎样才能得到关于这个帐户的所有信息_Mysql_Vb.net - Fatal编程技术网

Mysql 我怎样才能得到关于这个帐户的所有信息

Mysql 我怎样才能得到关于这个帐户的所有信息,mysql,vb.net,Mysql,Vb.net,我已经尝试了很多次来解决这个错误,但它是无用的 我只想得到这个帐户上的其他名字,他们都通过帐户id链接 我尝试过这段代码,但它只显示了第一个用户 注意:Login.Label2.text=id帐户 感谢所有在使用连接和命令的方法中声明它们。需要关闭并释放数据库对象使用…结束使用块为我们处理此问题 在之前不要打开连接。执行… 始终使用参数构建sql字符串以避免sql注入从不连接字符串 不要使用DataReader更新用户界面。DataReader需要打开的连接,而您不希望将连接保持打开这么长时间

我已经尝试了很多次来解决这个错误,但它是无用的 我只想得到这个帐户上的其他名字,他们都通过帐户id链接 我尝试过这段代码,但它只显示了第一个用户

注意:Login.Label2.text=id帐户


感谢所有

在使用连接和命令的方法中声明它们。需要关闭并释放数据库对象<代码>使用…结束使用块为我们处理此问题

之前不要打开连接。执行…

始终使用参数构建sql字符串以避免sql注入从不连接字符串

不要使用
DataReader
更新用户界面。
DataReader
需要打开的连接,而您不希望将连接保持打开这么长时间

我已将数据库代码与用户界面代码分离。这将使它更易于维护

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim dt As DataTable
    Try
        dt = GetPlayerData(Login.Label2.Text)
    Catch ex As Exception
        MessageBox.Show(ex.Message)
        Return
    End Try
    'I am guessing that "name" is a name of a field
    Label4.Text = dt(0)("name").ToString
    Label1.Text = dt(1)("name").ToString
    Label2.Text = dt(2)("name").ToString
    Label3.Text = dt(3)("name").ToString
End Sub

Private Function GetPlayerData(ID As String) As DataTable
    Dim dt As New DataTable
    Using cn As New MySqlConnection(ConStr),
            cmd As New MySqlCommand("Select *FROM player.player Where account_id= @ID;", cn)
        cmd.Parameters.Add("@ID", MySqlDbType.VarChar).Value = ID
        cn.Open()
        Using reader = cmd.ExecuteReader
            dt.Load(reader)
        End Using
    End Using
    Return dt
End Function

如果您想要的不仅仅是第一行,那么您需要循环阅读阅读器结果。如果找到并在标签文本上显示名称,请尝试循环阅读结果。当然,它只显示第一个用户,因为您只读取第一条记录,如果您对使用数据读取器做过任何研究,那么您知道对
Read
的每次调用都会从结果集中读取一条记录。如果要读取多条记录,则需要多次调用
read
MySqlDataReader
类的文档中甚至包含了一个代码示例,因此没有理由不知道。在未阅读相关文档之前,您不应在此处提问。
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim dt As DataTable
    Try
        dt = GetPlayerData(Login.Label2.Text)
    Catch ex As Exception
        MessageBox.Show(ex.Message)
        Return
    End Try
    'I am guessing that "name" is a name of a field
    Label4.Text = dt(0)("name").ToString
    Label1.Text = dt(1)("name").ToString
    Label2.Text = dt(2)("name").ToString
    Label3.Text = dt(3)("name").ToString
End Sub

Private Function GetPlayerData(ID As String) As DataTable
    Dim dt As New DataTable
    Using cn As New MySqlConnection(ConStr),
            cmd As New MySqlCommand("Select *FROM player.player Where account_id= @ID;", cn)
        cmd.Parameters.Add("@ID", MySqlDbType.VarChar).Value = ID
        cn.Open()
        Using reader = cmd.ExecuteReader
            dt.Load(reader)
        End Using
    End Using
    Return dt
End Function