0

私は次のようなストアドプロシージャを持っています:

ALTER procedure [dbo].[carcallvalidation]
@carid nvarchar(100)=null
as 
begin
select t.TBarcode, t.Paid,t.Status,t.DelDate from Transaction_tbl t where TBarcode=@carid
declare @transid integer=null
select @transid= t1.transactID from Transaction_tbl t1 where TBarcode=@carid
select count(k.transactid) transid from KHanger_tbl k where k.transactid=@transid
end

while executing stored procedure i am getting out put like this:

Tbarcode   paid status
1111         0    2

Transid
2

戻り値 0

vb.netでTransid値を取得するにはどうすればよいですか? 次のように最初の行の値を取得します。

Dim cmdcarvalidation As New SqlCommand("carcallvalidation", con.connect)
cmdcarvalidation.CommandType = CommandType.StoredProcedure
cmdcarvalidation.Parameters.Add("@carid", SqlDbType.VarChar, 50, ParameterDirection.Input).Value = txtTicket.Text
dr = cmdcarvalidation.ExecuteReader
While dr.Read

    tbarcode=dr("Tbarcode")
    payd= dr("paid")
   status= dr("status")
 end while

このようにtransid値を取得するとエラーが発生します.2番目の行の値を取得する方法はありますか

4

1 に答える 1

0

DataReader から値を要求します。

Transid= dr("Transid")

DataReader のようなすべての IDisposable メンバー インスタンスで Dispose() を呼び出すことを忘れないでください。

于 2013-06-24T08:22:26.557 に答える