Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 此sql命令查询中没有打印数据的位置? 目的_C#_Sql_Sql Server 2008_Datatable - Fatal编程技术网

C# 此sql命令查询中没有打印数据的位置? 目的

C# 此sql命令查询中没有打印数据的位置? 目的,c#,sql,sql-server-2008,datatable,C#,Sql,Sql Server 2008,Datatable,我想打印数据库表Orders中的所有行,其中PrintTime字段值为NULL 代码 问题 如您所见,有一个打印语句 Console.WriteLine(results.Rows[i]["ID"].ToString()); 但是我没有在控制台中打印任何东西,尽管我可以看到数据库中的行,其中充满了PrintTime列为NULL 问题: 请问我做错了什么?null不是一个值,而是一个表示rdbms不知道该字段中的值的标记;不能使用“=”检查null,因为等号运算符用于值 在sql中,必须使用检查n

我想打印数据库表
Orders
中的所有行,其中
PrintTime
字段值为
NULL

代码 问题 如您所见,有一个打印语句

Console.WriteLine(results.Rows[i]["ID"].ToString());
但是我没有在控制台中打印任何东西,尽管我可以看到数据库中的行,其中充满了
PrintTime
列为
NULL

问题:
请问我做错了什么?

null
不是一个值,而是一个表示rdbms不知道该字段中的值的标记;不能使用“=”检查
null
,因为等号运算符用于值

在sql中,必须使用
检查null,其中PrintTime为null

请注意,如果用实际值替换c#
DBNull.Value
,则“is”运算符不再有效

可以同时处理null和value的可能解决方法:

SELECT *
FROM   Orders 
WHERE  PrintTime = @printTimeValue
       or (
         @printTimeValue is null 
         and PrintTime is null
       )

null
不是一个值,而是一个标记,表明rdbms对该字段中的值没有任何线索;不能使用“=”检查
null
,因为等号运算符用于值

在sql中,必须使用
检查null,其中PrintTime为null

请注意,如果用实际值替换c#
DBNull.Value
,则“is”运算符不再有效

可以同时处理null和value的可能解决方法:

SELECT *
FROM   Orders 
WHERE  PrintTime = @printTimeValue
       or (
         @printTimeValue is null 
         and PrintTime is null
       )

放置
PrintTime=@printTimeValue
其中
@printTimeValue
NULL
正在激发服务器:根据ANSI SQL 92,条件为NULL,即使MS SQL具有允许将其视为
为NULL的设置
put
PrintTime=@printTimeValue
其中
@printTimeValue
NULL
也会引发服务器:根据ANSI SQL 92,条件为NULL,即使MS SQL具有允许将其视为
为NULL的设置
SELECT *
FROM   Orders 
WHERE  PrintTime = @printTimeValue
       or (
         @printTimeValue is null 
         and PrintTime is null
       )