利用oledb,写sql语句查询,出现字段为空,查不出来。
比如用户表里面有用户名,单位,密码。
如果存在一条记录,用户名和密码不为空,但是单位为空,查询写的SQL语句中记录与数据库中的记录符合,查不出来这条记录。
若不存在空值,查询正确,请各位指教是什么问题,字段在数据库里面都是文本格式。
谢谢啦。

解决方案 »

  1.   

    OleDbDataReader 
    string.IsNullOrEmpty(dr[""].ToString())
      

  2.   

    你的SQL语句在查询分析器里执行了查不出?如果通过控件显示的话,可能是代码里没处理,又或者查询空值没处理,如果是空值可以用isnull(("字段"),你表示的值),好像是这样的
      

  3.   

    sql里如果是空的话,where 里应该用 "where 单位 is null" 作为条件。
      

  4.   

    查询语句是这样的:Select * from UserTable where UserName = '{0}' and UserUnit = '{1}'UserPsw = '{2}',UserName,UserUnit,UserPsw);现在数据库表中有一条记录是这样的用户名:管理员,用户单位是空,用户密码是123,我传入的SQL语句中的条件跟它正好符合,却查询不出来,楼上几位说的利用IsNullOrEmpty是如何使用,我的UserName ,UserUnit ,'UserPsw 是通过TEXTBOX传入的,不是写死的,谢谢啦。
      

  5.   

    如果数据库字段可为空,那你的SQL应该判断一下ISNULL
      

  6.   

    先用string.IsNullOrEmpty 判断从textbox传入的UserUnit 的值。如果是空的话,SQL语句要改为:
    where UserUnit is null