我希望从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
中没有记录,然后显示错误
答案 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