我的C#SQL Select语句没有拾取我表中的任何记录

时间:2012-07-26 16:11:12

标签: sql select

我的SQL表中有 4条记录,我正在做一个SQL select语句来根据某个条件选择记录,但我没有选择任何记录。有人可以帮忙吗?

这是我的SELECT语句:

string Sql = "";  
Sql = @"SELECT * FROM " + _dtlName + " 
        WHERE Shipper_No = '" + sidNo + "' 
        AND Job_Code != '" + "R" + "'";  

我有3条记录,NullJob_Code记录的1记录为R

基于此,我应该使用NULL Job_Code拾取 3条记录,但返回0条记录

3 个答案:

答案 0 :(得分:3)

我怀疑问题是任何非null值和null值之间的比较都不会返回true或false值,而是null。所以你的查询应该是:

string sql = "SELECT * FROM " + _dtlName + " WHERE Shipper_No = @ShipperNo " +
             "AND (Job_Code IS NULL OR Job_Code != 'R')";

(请注意,我已经为Shipper_No提取了一个参数 - 您不应该像这样直接在SQL中包含值。显然,您需要在SQL命令中设置参数值。)

另请注意,<>在SQL中更常见,表示“不等于”,但我相信T-SQL允许任何一种形式。

答案 1 :(得分:0)

尝试,

Sql = @"SELECT * FROM " + _dtlName + " WHERE Shipper_No = '" + sidNo + "' AND Job_Code NOT IN ('R')";

答案 2 :(得分:0)

我认为您的查询应该更像是这样,因为您要选择NULL值。

string Sql = String.Format("SELECT * " + 
                           "FROM {0} " +
                           "WHERE Shipper_No = {1} AND " +
                           "      Job_Code IS NULL",
                            _dtlName, sidNo)