我遇到了同样的问题,我正在使用 VB。我已经尝试过@Scorpian275 的答案。这与 @Scorpian275 提供的解决方案相同,但它适用于 VB。 sql部分是一样的。
Public Shared Sub createConnection()
Dim con As SqlConnection = New SqlConnection("Data Source=ASHWIN\\SQLEXPRESS;Initial Catalog=employee;Integrated Security=True;Pooling=False")
con.Open
Dim cmd As SqlCommand = New SqlCommand("ashwin", con)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(New SqlParameter("@empid", SqlDbType.Int, 10, "empid"))
cmd.Parameters.Add(New SqlParameter("@empname", SqlDbType.VarChar, 20, ParameterDirection.Output, false, 0, 20, "ename", DataRowVersion.Default, Nothing))
cmd.Parameters.Add(New SqlParameter("@age", SqlDbType.Int, 20, ParameterDirection.Output, false, 0, 10, "age", DataRowVersion.Default, Nothing))
cmd.Parameters(0).Value = 101
cmd.UpdatedRowSource = UpdateRowSource.OutputParameters
cmd.ExecuteNonQuery
Dim name As String = CType(cmd.Parameters("@empname").Value,String)
Dim age As Integer = Convert.ToInt32(cmd.Parameters("@age").Value)
Console.WriteLine("the name is {0}--and age is {1}", name, age)
Console.ReadLine
End Sub
最后一个参数
cmd.Parameters.Add(New SqlParameter("@age", SqlDbType.Int, 20, ParameterDirection.Output, false, 0, 10, "age", DataRowVersion.Default, Nothing))
是我们为这些变量提供的初始值(Here Nothing)。