这是我的第一个问题
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
我在做什么错了?
答案 0 :(得分:0)
在SET NOCOUNT ON;
之后的proc开头添加AS
,然后删除PRINT
。在VB.NET中,应该使用SqlClient而不是ADODB。
这对我来说非常有用:D感谢Dan Guzman