-1

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

ALTER procedure [dbo].[carcallvalidation]
@carid nvarchar(100)=null
as begin SET NOCOUNT ON;  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
if(select count(k.transactid) from KHanger_tbl k where k.transactid=@transid)>0
begin
return 1 end  end

これを実行している間、私は次のように出力されています:

TBarcode             Paid  Status      DelDate
-------------------- ----- ----------- -----------------------
57173621345          1     0           NULL  while i am checking this value using vb.net code like 

これ:

Dim dr As SqlDataReader
Dim payd As Integer
dr = cmdcarvalidation.ExecuteReader   While dr.Read
If dr("Paid") Is DBNull.Value Then payd = 0 Else
 payd = dr("Paid")  If payd = 1 Then  MsgBox("Payment Done") Exit Sub End If End If  End While

しかし、有料の値は-1として取られています..しかし、データベースでは、この値を1として取得しています.次に、-1の値を取得する方法..

4

1 に答える 1

0

データベースでは、支払い済みのデータ型はビットであるため、コードでは、値が 0 または 1 ではなく、True または False であることを確認する必要があります。

于 2013-09-01T10:09:27.850 に答える