当我尝试在 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
这是我的第一个问题
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