0

我使用存储过程中的输出变量将值从数据库传递到 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

现在假设我在 lbl.Text 中有一个“800”,并且我对另一个存储过程 (dbo.test2) 有完全相同的代码,并且我在 lbl.text2 值“120”中有输出参数@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

但它不起作用。

4

1 回答 1

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 的单个调用中。

于 2013-06-07T13:40:05.817 回答