我有一个像这样的存储过程:
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值..
答案 0 :(得分:0)
在数据库中支付的数据类型是bit ,,所以在代码中我们应该检查值是否为True,而不是0或1