[英]Using VB.net IF statement with SQL value
如果我的SQL值大於1,我嘗試使用IF
語句執行某些操作。
但是,當我運行以下代碼時,它將返回錯誤。
沒有為類型'System.Data.SqlClient.SqlCommand'和'Integer'定義運算符'>'。
這是代碼:
Using cmdb = New SqlCommand("INSERT INTO AdditionalDaisyCodes (AddCode) VALUES (@AddCode)", con)
con.Open()
cmdb.ExecuteNonQuery()
con.Close()
If cmdb > 1 Then
MessageBox.Show("Duplicate Codes Exist!", "Indigo Billing", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
End If
End Using
有人可以提供正確語法的幫助嗎?
用這個
int result=cmdb.ExecuteNonQuery();
if result > 1 then
//code here
else
end if
您有一個更大的問題,不僅僅是語法錯誤。 根據您發布的代碼,您似乎想通知用戶存在重復的代碼。 既然您有Else
,我將作一個猜測,並說如果找不到重復的代碼,則需要插入。
當前,受ExecuteNonQuery()
影響的行數永遠不會大於1。此外,在發布的代碼中,您永遠不會為@AddCode
參數分配值-如果AddCode
列不能為null,則可能導致錯誤。
您可能想要做的是檢查代碼是否存在,如果不存在,則添加它。 這樣的事情可以解決問題:
Using cmdb = New SqlCommand("SELECT * FROM AdditionalDaisyCodes WHERE AddCode = @AddCode", con)
con.Open()
cmdb.Parameters.AddWithValue("@AddCode", txtAddCode.Text)
Dim reader As SqlDataReader = cmdb.ExecuteReader()
If reader.HasRows Then
MessageBox.Show("Duplicate Codes Exist!", "Indigo Billing", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
cmdb.CommandText = "INSERT INTO AdditionalDaisyCodes(AddCode) Values(@AddCode)"
cmdb.Parameters.AddWithValue("@AddCode", txtAddCode.Text)
cmdb.ExecuteNonQuery()
End If
con.Close()
End Using
txtAddCode.Text
中的txtAddCode.Text
假設代碼來自於名為txtAddCode
的TextBox
。 首先,它通過運行受WHERE子句約束的SELECT查詢來檢查表中是否已存在代碼。 如果返回的SqlDataReader
有行,則該代碼已在表中,並顯示消息框。
如果SqlDataReader
沒有行,則該代碼不在表中,並且cmdb
被重用於執行插入操作。
還要注意,您也可以將SqlConnection
放在Using
塊中,從而無需顯式調用連接上的Close()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.