Search code examples
vb.netdatasetstreamreader

get single value from sql-query into a textbox


The result of my sql-query is a single value i want display that in a lable but dont know how. I have a solution creating a dataset put the result of the query into that dataset and get it by row(0),column(0) but i guess there is a smarter way doing it.

Private myquery As String

Sub New(ByVal query As String)
    myquery = query
End Sub
Public Sub query_Send()
    Dim myconn As New SqlConnection("Data Source=DB;Integrated Security=TRUE")
    Dim mycmd As SqlCommand = New SqlCommand(Me.myQuery, myconn)
    Dim myTable As New DataTable
    Dim previousConnectionState As ConnectionState = myconn.State
    Try
        If myconn.State = ConnectionState.Closed Then
            myconn.Open()
            Dim myDA As New SqlDataAdapter(mycmd)
            myDA.Fill(myTable)
            tb.text = **...**
        End If
        If previousConnectionState = ConnectionState.Closed Then
            myconn.Close()
        End If
    End Try
End Sub

Solution

  • You can use SqlCommand.ExecuteScalar Method

    Dim querystr as String = "select value from MyTable where ID=5"
    Dim mycmd As New SqlCommand(querystr, connection)
    dim value as Object = mycmd.ExecuteScalar()
    

    The value you can put to your textbox. ExecuteScalar returns first value of first row of the resultset (equivalent of row(0).column(0) ) When no record is returned the value is nothing.