使用SqlDataReader时从数据库中获取错误的值

时间:2013-09-01 09:08:05

标签: sql-server vb.net

我有一个像这样的存储过程:

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值..

1 个答案:

答案 0 :(得分:0)

在数据库中支付的数据类型是bit ,,所以在代码中我们应该检查值是否为True,而不是0或1