当我尝试在 vb 上获取他的值时,输出无法正常工作

Output doesn't work properly when i try to get his value on vb

这是我的第一个问题

alter proc InsertarVentas
    @ban int output
as
    declare @fecha date
    set @fecha = GETDATE()
begin 
    insert into Ventas (tipoven, fecha) 
    values ('contado', @fecha)

    insert into BANPAC.dbo.Ventas (tipoven, fecha) 
    values ('contado', @fecha)

    select @ban = scope_identity()

    print (@ban)
end

我正在尝试使用此存储过程来获取最后一次插入的 id 的值,但它不起作用

这是来自 vb 的代码:

Sub InsertarNuevaVenta()
        comando = New ADODB.Command
        With comando
            .CommandText = "InsertarVentas"
            .CommandType = CommandType.StoredProcedure
            .Parameters.Append(.CreateParameter("0", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamInput, 1, "H"))
            .Parameters.Append(.CreateParameter("1", ADODB.DataTypeEnum.adInteger, ADODB.ParameterDirectionEnum.adParamOutput,, 0))
            .ActiveConnection = Conexion_vta
            .Execute()
            ban.Value = .Parameters(1).Value
            MessageBox.Show(ban.Value.ToString)
        End With
        Vta_txt_clave_venta.Text = ban.Value.ToString
    End Sub

我做错了什么?

AS 之后将 SET NOCOUNT ON; 添加到 proc 的开头并删除 PRINT。在 VB.NET 中,您应该使用 SqlClient 而不是 ADODB。

这非常适合我 :D 感谢 Dan Guzman