簡體   English   中英

在VB.NET標簽上顯示SQL Server的值

[英]Display value from SQL Server on a VB.NET label

我想從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沒有記錄,那么它將顯示錯誤

在此處輸入圖片說明

您可以利用ISNULL T-SQL函數來處理此問題:

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

如果表中沒有記錄,則max(id)部分將返回null,並且您不能+1為null。

要解決此問題,請使用COALESCE運算符,例如:

COALESCE(MAX(ID), 0) + 1 

如果從max(id)返回一個值,它將使用該值,否則將返回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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM