![](/img/trans.png)
[英]VB.NET synchronized Combobox and label from 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.