从sql select命令返回字符串值vb.net代码隐藏

从sql select命令返回字符串值vb.net代码隐藏,.net,vb.net,.net,Vb.net,作为一个新手,我越来越老了,我一直在试图弄清楚如何用vb代码从sql select命令返回字符串值。我的程序如下。本质上,我试图做的是提取table BuildFields(带WHERE条件)中DisplayName字段中的值,并将其放入formview模板中标签的文本字段中。这看起来并不难,我确信我错过了一些东西。有人知道我做错了什么吗?这不会退回任何东西。谢谢 Protected Sub FormView1_DataBound(ByVal sender As Object, ByVal e

作为一个新手,我越来越老了,我一直在试图弄清楚如何用vb代码从sql select命令返回字符串值。我的程序如下。本质上,我试图做的是提取table BuildFields(带WHERE条件)中DisplayName字段中的值,并将其放入formview模板中标签的文本字段中。这看起来并不难,我确信我错过了一些东西。有人知道我做错了什么吗?这不会退回任何东西。谢谢

Protected Sub FormView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles FormView1.DataBound

    Dim dt As New DataTable()
    Dim conCString As String = ConfigurationManager.ConnectionStrings("conCString").ConnectionString
    Dim lbl As Label = FormView1.FindControl("Label1")
    Dim sqlConnection As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("conCString").ConnectionString)
    Dim cmd As New SqlCommand

    cmd.CommandText = "SELECT [DisplayName] FROM [BuildFields] WHERE ([TableID] = N'Capacitors') AND (ColumnID = N'UserField01') ORDER BY [ColumnID]"
    cmd.CommandType = CommandType.Text
    cmd.Connection = SqlConnection

    Try
        SqlConnection.Open()
        Dim result As String

        result = cmd.ExecuteScalar()

        lbl.Text = result

        sqlConnection.Close()
    Catch ex As Exception

    End Try

End Sub
现在打开。为什么?如果/当
ExecuteScalar
返回
DBNull
时会发生什么

我敢打赌,如果删除try-catch块,您将收到以下错误消息:

Microsoft.VisualBasic.dll中发生类型为“System.InvalidCastException”的未处理异常

下面是您的代码的外观:

Dim result As Object
result = cmd.ExecuteScalar()
lbl.Text = If((TypeOf result Is String), CType(result, String), "(null)")
处理一次性物品时,还应使用
Using
关键字

Using sqlConnection As New SqlConnection(ConfigurationManager.ConnectionStrings("conCString").ConnectionString)
    Using cmd As New SqlCommand()
        'Code goes here...
    End Using
End Using
你永远不应该像那样接受例外。始终采取适当措施和/或重新抛出错误

Catch ex As Exception
    'Do something or else:
    Throw
End Try
可能重复的