从SQL Server数据库中选择NULL值

| 我在选择语句时遇到问题。 看起来像:
myda = new SqlDataAdapter(\"Select * FROM tblAgenda WHERE tAgUsrId =\'\" + Session[\"usrId\"] + \"\' AND tAgTBD = \'\" + Session[\"username\"] + \"\' OR tAgTBD = \'\" + DBNull.Value + \"\' \", myconn);
但是我不知道如何使DBNull.Value工作。我也尝试只使用\“ \”来代替,但是它也不起作用。 关于如何重写此语句有什么想法吗?谢谢。     
已邀请:
        假设您的会话值已被清除,则可以执行以下操作:
myda = new SqlDataAdapter(\"Select * FROM tblAgenda WHERE tAgUsrId =\'\" +
    Session[\"usrId\"] + \"\' AND tAgTBD = \'\" +
    Session[\"username\"] + \"\' OR tAgTBD is null\", myconn);
上面假设您希望tAgTBD为空的所有行。如果要限制对用户ID的限制,则需要在两个ORed条件的周围添加方括号:
myda = new SqlDataAdapter(\"Select * FROM tblAgenda WHERE tAgUsrId =\'\" +
    Session[\"usrId\"] + \"\' AND (tAgTBD = \'\" +
    Session[\"username\"] + \"\' OR tAgTBD is null)\", myconn);
如果尚未对会话值进行清理,则需要阅读SQL注入,并考虑使用带参数的
SqlCommand
而不是构造字符串。尽管您可能还是更喜欢走这条路-长期而言,这是一个更好的习惯,然后您无需考虑这些值是否已过卫生处理。     

要回复问题请先登录注册