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的设置
putPrintTime=@printTimeValue
其中@printTimeValue
为NULL
也会引发服务器:根据ANSI SQL 92,条件为NULL,即使MS SQL具有允许将其视为为NULL的设置
SELECT *
FROM Orders
WHERE PrintTime = @printTimeValue
or (
@printTimeValue is null
and PrintTime is null
)