Заполнить метку из одного поля в SQL Server - PullRequest
1 голос
/ 16 сентября 2010

У меня есть столбец в таблице, который содержит сообщение, и я хочу, чтобы это сообщение отображалось в метке.Вот мой код, который в настоящее время не заполняет метку.

Protected conString As String = ConfigurationManager.AppSettings("sqldirectory")
Dim cnn As New SqlConnection(conString)
    Dim cmd As New SqlCommand("select message from [database].[dbo].[table]")
    Dim dr As SqlDataReader

    Try
        cnn.Open()
        dr = cmd.ExecuteReader()
        lblMsg.Text = dr(0).ToString
    Catch ex As Exception
        dr = Nothing
    Finally
        cnn.Close()
    End Try

Ответы [ 2 ]

1 голос
/ 16 сентября 2010

Хорошо, после игры, я придумал, что работает

Protected conString As String = ConfigurationManager.AppSettings("sqldirectory")
Dim cnn As New SqlConnection(conString)
Dim cmd As New SqlCommand("select message from [database].[dbo].[table]", cnn)
Dim dr As SqlDataReader
Dim msg As String
Try
    cnn.Open()
    dr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
    While dr.Read()
        msg = dr("message")
        lblMsg.Text = msg
    End While
Catch ex As Exception
    dr = Nothing
Finally
    cnn.Close()
End Try
0 голосов
/ 08 мая 2013

Я столкнулся с этим случайно, когда искал что-то еще. Есть более простой способ сделать это.

Я бы соблазнился создать какой-нибудь общий код приложения для этого. Создайте папку app_code в своем проекте и файл common.vb со следующим кодом:

Imports Microsoft.VisualBasic
Imports System.Data.SqlClient
Imports System.Data

Namespace GetDBResult
Public Class DB
    Public Shared Function GetRecord(sql As String) As String
        Dim result As String
        Dim connection As New SqlConnection(ConfigurationManager.ConnectionStrings("YourConnectionString").ToString)
        connection.Open()

        Dim command As New SqlCommand(sql, connection)

        Try
            If command.ExecuteScalar IsNot System.DBNull.Value Then
                result = command.ExecuteScalar
            Else
                result = ""
            End If
        Catch ex As Exception
            Throw ex

        Finally
            connection.Close()
        End Try

        Return result
    End Function
    End Class
    End Namespace

Оттуда вы сможете вызывать функцию из любого кода VB, что позволяет очень легко получить поле из базы данных для назначения его метке. Следующим образом:

    Dim sql as string = "your sql query which should return one row and column"
    label1.text = DB.GetRecord(sql)

Сохраняет много повторного набора.

О, не забудьте импортировать ваш код в любой VB, в котором вы хотите использовать свой код приложения

    Imports GetDBResult

Большое спасибо, Neil

...