我创建了一个名为Cls_ICCID
的类,我在Update_Status
中声明了一个返回byRef变量的方法。
Cls_ICCID
Public Sub Update_Status(**ByRef massege As String**, ByVal ICCID_No As Integer, ByVal status As Integer)
Try
Dim cmd As SqlCommand
Dim sql As String
Dim myConnection As SqlConnection = New SqlConnection()
myConnection.ConnectionString = "Data Source=TEHRANI\TEHRANI;Initial Catalog=GSMProduction;Persist Security Info=True;User ID=sa;Password=1"
sql = "UPDATE Tbl_ICCID SET Status=status WHERE ICCID=ICCIDNo"
myConnection = New SqlConnection(sql)
myConnection.Open()
cmd = New SqlCommand(sql, myConnection)
cmd.ExecuteNonQuery()
cmd.Dispose()
myConnection.Close()
massege = "SeccessFully"
Catch ex As Exception
massege = "server Error"
End Try
End Sub
然后在文本框更改事件触发时执行该方法:
Private Sub Txt_ICCID_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txt_ICCID.TextChanged
Dim clsICCID As Cls_ICCID
clsICCID.Update_Status(lblError.Text, Txt_ICCID.Text, 1)
End Sub
但这给了我一个例外:
算术运算导致溢出。
我做错了什么?
答案 0 :(得分:1)
没有尝试过代码,但我认为你想要像
这样的东西Public Function Update_Status(iccidNo As Integer, status As Integer) As String
Const sql As String = "UPDATE Tbl_ICCID SET Status=@status WHERE ICCID=@ICCIDNo"
Const connstr As String = "Data Source=TEHRANI\TEHRANI;Initial Catalog=GSMProduction;Persist Security Info=True;User ID=sa;Password=1"
Try
Using myConnection = New SqlConnection()
myConnection.ConnectionString = connstr
Using cmd = New SqlCommand(sql, myConnection)
cmd.Parameters.AddWithValue("@status", status)
cmd.Parameters.AddWithValue("@ICCIDNo", iccidNo)
cmd.ExecuteNonQuery()
Update_Status = "Successfully"
End Using
End Using
Catch ex As SqlException
Update_Status = "server Error"
Catch ex As Exception
Update_Status = "server Error"
End Try
End Function
但我个人不会那样处理异常并返回一个布尔值。
答案 1 :(得分:1)
你明确要求的是在方法中返回值。您必须将Sub
声明为Function
,然后使用return
返回值,而不是Public Function Update_Status(ICCID_No As Integer, status As Integer) As String
'...
return massege
End Function
:
lblError.Text = clsICCID.Update_Status(Txt_ICCID.Text, 1)
然后抓住价值:
{{1}}
答案 2 :(得分:0)
我应该使用Function而不是sub方法。因为sub方法无效。
答案 3 :(得分:0)
对于返回值的方法,您需要将方法声明为函数,而不是sub。 例如:
Public Function Update_Status(ByVal ICCID_No As Integer, ByVal status As Integer) As String
Return "errorMessage"
End Function
然后可以像这样调用它:
returnValue = Update_Status(Txt_ICCID.Text, 1)
请参阅:http://msdn.microsoft.com/en-us/library/sect4ck6%28v=vs.80%29.aspx
但似乎您的参数可能也不匹配:将字符串作为整数发送?