在VB.NET标签上显示SQL Server的值

时间:2018-06-06 14:43:07

标签: sql-server vb.net

我希望从SQL Server专栏ID获取一个值,并在label.text上显示,并提供以下代码的帮助:

Sub getID()
    Dim selquery As String = ("select max(id)+1 from picture1")
    Dim command As New SqlCommand(selquery, con)
    con.Open()
    Label1.Text = (command.ExecuteScalar)
    con.Close()
End Sub

方案是从ID获取最大值使其加1,并将其分配给label.text,当我在SQL Server表中至少有一条记录但如果我有我的表picture1中没有记录,然后显示错误

enter image description here

3 个答案:

答案 0 :(得分:1)

您可以利用ISNULL T-SQL function来解决此问题:

SELECT ISNULL(MAX(id), 0) + 1 from picture1

答案 1 :(得分:0)

如果您的表中没有记录,max(id)部分将返回null,并且您不能+1为空。

要解决该问题,请使用COALESCE运算符,例如:

COALESCE(MAX(ID), 0) + 1 

如果从max(id)返回一个值,它将使用它,否则它将返回0

答案 2 :(得分:0)

command.ExecuteScalar的返回值属于Object类型,因此您必须检查该值。

这应该有效:

Dim objResult As Object = command.ExecuteScalar
Dim intResult As Integer = If(TypeOf objResult Is Integer, DirectCast(objResult, Integer), 0)
Label1.Text = intResult.ToString

此外,您应该切换Option Strict On