【问题标题】:Get specific row col values from mysql using vb 2012使用 vb 2012 从 mysql 获取特定的行列值
【发布时间】:2013-05-13 05:15:24
【问题描述】:

我有一个按钮检索我只想通过其行和列获取数据库表“帐户”值并将其显示在文本框中。我不断在数据填充行上遇到错误

 Imports MySql.Data.MySqlClient
Public Class Form1
Dim dataset As DataSet
Dim datatable As DataTable
Dim sqlcon As MySqlConnection
Dim dataadapter As MySqlDataAdapter
Dim sqlcommand As MySqlCommand
Dim sql As String

Private Sub retrieve_Click(sender As Object, e As EventArgs) Handles retrieve.Click

    sqlcon = New MySqlConnection("Data Source=localhost;Database=database;User ID=root;Password=;")

        sqlcon.Open()

    sql = "select * from account"
    dataadapter = New MySqlDataAdapter(sql, sqlcon)
    dataadapter.Fill(dataset)
    TextBox2.Text = dataset.Tables(0).Rows(0).Item(0).ToString()
End Sub
End Class

【问题讨论】:

    标签: mysql database vb.net


    【解决方案1】:

    您需要实例化传递给 Fill 方法的数据集。

    ....
    dataset = new DataSet()
    dataadapter.Fill(dataset)
    ...
    

    完成后不要忘记关闭连接。在不需要时保持开放是一种非常昂贵的资源

    Using sqlcon = New MySqlConnection("Data Source=localhost;Database=database;User ID=root;Password=;")
    
        sqlcon.Open()
        sql = "select * from account"
        dataadapter = New MySqlDataAdapter(sql, sqlcon)
        dataset = new DataSet()
        dataadapter.Fill(dataset)
        TextBox2.Text = dataset.Tables(0).Rows(0).Item(0).ToString()
    End Using
    

    See the Using Statement

    但是,如果您只需要一行,最好使用 WHERE 子句优化查询以限制数据库返回的结果。

        sql = "select * from account WHERE AccountName = @name"
        dataadapter = New MySqlDataAdapter(sql, sqlcon)
        dataadapter.SelectCommand.Parameters.AddWWithValue("@name", inputNameBox.Text)
        dataset = new DataSet()
        dataadapter.Fill(dataset, "Account")
        if dataset.Tables("Account").Rows.Count > 0 then 
            TextBox2.Text = dataset.Tables("Account").Rows(0).Item(0).ToString()
        End If
    

    希望这将只返回所需的行

    【讨论】:

    • 好的让我先试试,文本框行项方法可以吗?我可以使用行或列的名称而不是数字吗?谢谢
    • 您真的需要检索整个帐户表才能仅获取特定行的列值吗?您可以使用列的名称而不是项目/列的索引号,例如:dataset.Tables(0).Rows(0).Item("columnName")dataset.Tables(0).Rows(0)("columnName")dataset.Tables(0).Rows(0)!columnName。但是对于该行,您需要使用Select 方法指定哪一行,或者像sql = "select * from account where yourRowId=someValue" 一样预先过滤您的SQL 查询
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 2022-06-15
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    相关资源
    最近更新 更多