我使用存储过程中的输出变量将值从数据库传递到VB.NET。
Public Sub VALUEONE()
Dim conn As New SqlConnection("Data Source=XXX\SQLEXPRESS;Initial Catalog=DB;Integrated Security=TRUE")
Dim cmd As SqlCommand = New SqlCommand("dbo.test", conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@test", SqlDbType.Decimal)
cmd.Parameters("@test").Direction = ParameterDirection.Output
conn.Open()
cmd.ExecuteNonQuery()
lbl.Text = cmd.Parameters("@test").Value.ToString
conn.Close()
End Sub
现在让我说我有一个" 800"在lbl.Text中,我对另一个存储过程(dbo.test2)具有完全相同的代码,并且我在lbl.text2值" 120"中有outputparameter @ test2。我现在要总结" 800"和" 120"并在lbltest3中可视化,但我不知道该怎么做。我已经尝试过类似的东西:
dim a as decimal
dim b as decimal
a = cmd.Parameters("@test").Value
b = cmd.Parameters("@test2").Value
lbl3 = (a+b).tostring
但它不起作用。
答案 0 :(得分:0)
Public Sub VALUETWO()
Using conn As New SqlConnection("Data Source=XXX\SQLEXPRESS;Initial Catalog=DB;Integrated Security=TRUE"), _
cmd As SqlCommand = New SqlCommand("dbo.test", conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@test", SqlDbType.Decimal)
cmd.Parameters("@test").Direction = ParameterDirection.Output
conn.Open()
cmd.ExecuteNonQuery()
Decimal a = cmd.Parameters("@test").Value
cmd.CommandText = "dbo.test2"
cmd.Parameters.Add("@test2", SqlDbType.Decimal)
cmd.Parameters("@test2").Direction = ParameterDirection.Output
cmd.ExecuteNonQuery()
Decimal b = cmd.Parameters("@test").Value
lbl3.Text = (a + b).ToString()
End Using
End Sub
但是,您可能希望将这些存储过程组合成对db的单个调用。