标题:如何用VB.NET判断数据库的BIT值的0和空?
只看楼主
binghe6610
Rank: 2
等 级:论坛游民
帖 子:273
专家分:61
注 册:2009-2-23
结帖率:86.67%
 问题点数:0 回复次数:8 
如何用VB.NET判断数据库的BIT值的0和空?
中我用一个布尔值读取数据库的bit类型值,但是有个问题是,我想区分bit值为0和为空,也就是判断3种状态。
经过测试,VB.ENT的布尔值类型会把bit的0和空值都理解为false
搜索更多相关主题的帖子: 判断 NET BIT 数据库 
2010-10-04 10:49
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
得分:0 
程序代码:
'还是拿你的数据做例子
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim connStr As String = "SERVER=.;UID=sa;PWD=;DATABASE=ceshi"
        Dim conn As SqlClient.SqlConnection = New SqlClient.SqlConnection(connStr)
        Dim rs As New SqlClient.SqlDataAdapter
        Dim mydata As New DataSet()
        Dim cmd As SqlCommand = conn.CreateCommand
        Dim sql As String = "select * from [admin]  where [kd_xsdh]='user'"
         = sql
        conn.Open()
        rs.SelectCommand = cmd
        rs.Fill(mydata, "1")
        Try
            Select Case mydata.Tables(0).Rows(0)("kd_zuofei").ToString
                Case "True"
                    MsgBox("bit值为 1")
                Case "False"
                    MsgBox("bit值为 0")
                Case Else
                    MsgBox(" bit值为空值")
            End Select
            conn.Close()
        Catch ex As Exception
            MsgBox("数据库中没有此记录")
        End Try

    End Sub

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2010-10-04 12:25
binghe6610
Rank: 2
等 级:论坛游民
帖 子:273
专家分:61
注 册:2009-2-23
得分:0 
谢谢回复,我没分了,只好感谢了

你的方法我估计不行,因为有可能我查询出来的行是空行,用ROWS(0)就要报错了。
最后我还是用一个string类型接收bit的返回值解决了。
string可以判断""值

bit的返回值也就是3种
2010-10-04 13:36
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
得分:0 
用ROWS(0)就要报错了——程序将会执行Catch ex As Exception代码了

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2010-10-04 13:44
binghe6610
Rank: 2
等 级:论坛游民
帖 子:273
专家分:61
注 册:2009-2-23
得分:0 
是的,用TRY也不错,谢谢
2010-10-04 13:49
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
得分:0 
不知道楼主所说的“有可能我查询出来的行是空行”中的空行是指什么?一条记录所有字段的值为空或NULL,还是查没有记录叫空行
字段值为空与字段值为NULL是不同的含义啊。

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2010-10-04 13:49
binghe6610
Rank: 2
等 级:论坛游民
帖 子:273
专家分:61
注 册:2009-2-23
得分:0 
表的结构所致,
查询语句是这样的
select 某字段 from biao where ****

这个某字段就是一个bit类型的,所以当where不符合时就可能没有数据行,所以就会出现空行的情况了
2010-10-07 16:05
haigecnpeng
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:261
专家分:510
注 册:2008-10-6
得分:0 
一般对数据进行处理前都要if not rsado.eof then的啊!
数据集为空的话就不要去处理,如果是空值的话,用isnull应该可以判断啊!

都说到了.net年代,VB与C#都是一样的!
但为什么招聘的都是C#呢?
2010-10-08 22:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-321950-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.953227 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved