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

时间:2020-06-13 20:18:12

标签: sql-server vb.net stored-procedures adodb

这是我的第一个问题

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

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

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

这对我来说非常有用:D感谢Dan Guzman