vb.net 需要从 sql 查询中获取值

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/10856686/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-09 16:07:46  来源:igfitidea点击:

need to get value from sql query

vb.netado.net

提问by Nate Pet

Through ADO,I like to do the following query:

通过ADO,我喜欢做以下查询:

    select name, address, zip from terr where id = '33334'

I like then to assign name, addess, zip to variables so that I can assign it later in my program. How do I do this with VB.NET ADO?

我喜欢然后将名称,地址,zip 分配给变量,以便我稍后可以在我的程序中分配它。如何使用 VB.NET ADO 执行此操作?

回答by Robert Beaubien

Try somethign like this:

尝试这样的事情:

  Dim dbName As String
  Dim dbAddress As String
  Dim dbZip As String
  Using connObj As New SqlClient.SqlConnection("<connectionString>")
     Using cmdObj As New SqlClient.SqlCommand("select name, address, zip from terr where id = '33334'", connObj)
        connObj.Open()
        Using readerObj As SqlClient.SqlDataReader = cmdObj.ExecuteReader
           'This will loop through all returned records 
           While readerObj.Read
              dbName = readerObj("name").ToString
              dbAddress = readerObj("address").ToString
              dbZip = readerObj("zip").ToString
              'handle returned value before next loop here
           End While
        End Using
        connObj.Close()
     End Using
  End Using

Also, you should look into parameterizing the value for the where clause.

此外,您应该研究参数化 where 子句的值。

回答by Tim Schmelter

You need a DataBase (i assume MS Sql-Server), a Connection and a DataAdapter to fill a DataTable. Then you have all you need. Here's an example:

您需要一个数据库(我假设是 MS Sql-Server)、一个连接和一个 DataAdapter 来填充 DataTable。然后你就拥有了你需要的一切。下面是一个例子:

Public Function GetUser(UserId As Int32) As DataRow
    Using con = New SqlConnection(My.Settings.RM2ConnectionString)
        Using cmd = New SqlCommand("select name, address, zip from terr where id = @id", con)
            cmd.Parameters.AddWithValue("@id", UserId)
            Dim da = New SqlDataAdapter(cmd)
            Dim tblUser = New DataTable
            da.Fill(tblUser)
            If tblUser.Rows.Count <> 0 Then
                Return tblUser(0)
            Else
                Return Nothing
            End If
        End Using
    End Using
End Function

回答by seba123neo

execute a SqlCommand from SQLDatareader, like:

从 SQLDatareader 执行 SqlCommand,例如:

Dim vVendedor As New SqlCommand("SELECT user FROM users", mConeccion)
vDatosVen = vVendedor.ExecuteReader
vVendedor = Nothing

and to get te value:

并获得 te 值:

While vDatosVen.Read() 
   vUser = vDatosVen("user")
End While

回答by Samuel

Here's what i did...

这就是我所做的...

   Private Sub btn_Connect_Click(sender As Object, e As EventArgs) Handles btn_Connect.Click
    Dim sql_connection As New MySqlConnection
    Dim sql_query As New MySqlCommand
    Dim sql_result As MySqlDataReader
    sql_connection.ConnectionString = "Server=localhost;Database=hidden;Uid=root;Pwd=;"
    sql_query.Connection = sql_connection
    sql_connection.Open()
    sql_query.CommandText = "SELECT Entry,name FROM table WHERE entry=1;"
    sql_result = sql_query.ExecuteReader
    If sql_result.HasRows Then

        Do While sql_result.Read()
            Dim query_result As String
            query_result = sql_result("name")
            MsgBox(query_result)
        Loop
    Else
        MsgBox("No results found.")
    End If