- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
编辑:从PowerShell 7 Preview 2开始,由于Joel Sallow通过pull request 9794,-not [System.DBNull]::Value
的计算结果为$true
。
花更多时间在PowerShell中提取SQL数据。在比较过程中,遇到[System.DBNull]::Value问题以及PowerShell的行为方式。
这是我看到的行为的一个示例,以及解决方法
#DBNull values don't evaluate like Null...
if([System.DBNull]::Value){"I would not expect this to display"}
# The text displays.
if([string][System.DBNull]::Value){"This won't display, but is not intuitive"}
# The text does not display.
#DBNull does not let you use certain comparison operators
10 -gt [System.DBNull]::Value
# Could not compare "10" to "". Error: "Cannot convert value "" to type "System.Int32". Error: "Object cannot be cast from DBNull to other types.""
[System.DBNull]::Value -gt 10
# Cannot compare "" because it is not IComparable.
#No real workaround. Must use test for null workaround in conjunction to avoid comparison altogether:
[string][System.DBNull]::Value -and [System.DBNull]::Value -gt 10
#Example scenario with a function that uses Invoke-Sqlcmd2 to pull data
Get-XXXXServer | Where-Object{$_.VCNumCPUs -gt 8}
#Error for every line where VCNumCPU has DBNull value
#workaround
Get-XXXXServer | Where-Object{[string]$_.VCNumCPUs -and $_.VCNumCPUs -gt 8}
我是否遗漏了任何东西,或者没有“简单”的解决方法来让缺乏经验的人按预期使用PowerShell比较?
最佳答案
我认为您在这里采用了错误的方法。与documented一样,DBNull
类表示不存在的值,因此像-gt
或-lt
这样的比较没有任何意义。不存在的值既不大于也不小于任何给定值。但是, Value
字段具有Equals()
方法,该方法可让您检查值是否为DBNull
:
PS C:> ([DBNull]::Value).Equals(23)
False
PS C:> ([DBNull]::Value).Equals([DBNull]::Value)
True
关于sql - 在PowerShell中处理System.DBNull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22285149/
我的应用程序输出“System.InvalidCastException:“对象无法从 DBNull 转换为其他类型。” Dim sqlquery = String.Format("SELECT id
是否有人对如何检查值是否为 DBNull 有偏好? ?我发现这两个语句给了我想要的结果,但只是想知道是否有偏好? if (any is System.DBNull) 与...一样: if (any =
我很好奇使用 if(some_value is DBNull) 与 if(DBNull.Value.Equals(some_value)) 的优缺点是什么。我个人更喜欢 if(some_value i
我可以检查 DBnull使用任何方法在数据行上。 要么通过使用 if(dr[0][0]==DBNull.Value) //do somethin 或者通过做 if(dr[0][0].ToString(
如标题所示,我有一个代码,当数据库中没有几何图形并且 DbGeometry 获得空值时,我会收到带有空值的 DbNull 类型。但是当我想做一个 if 语句来检查 DbGeometry 是否等于 Db
我对 .NET 中的空值和变量有点困惑。 (首选VB) 有没有办法检查任何给定变量的“空值”,无论它是对象还是值类型?或者我的空检查是否必须始终预测它是检查值类型(例如 System.Integer)
编辑:从PowerShell 7 Preview 2开始,由于Joel Sallow通过pull request 9794,-not [System.DBNull]::Value的计算结果为$true
在 .NET 中有 null引用,到处都用来表示一个对象引用为空,然后还有DBNull ,它被数据库驱动程序(和其他几个)用来表示......几乎相同的东西。自然,这会造成很多困惑,并且必须制定转换例
SQLServer 整型字段。值有时为空。DataAdapter填充数据集OK,可以在DatagridView中显示数据。 当尝试以编程方式从数据集中检索数据时,数据集字段检索代码会抛出 Strong
现在我正在使用以下方法: string[] AudienceTags = ((string[])(relResults["NEVCOAudienceTag"].GetType() == typeof(
我有一个类型为的对象: dynamic {System.DBNull} 我要检查一下: if (myObject!= null || myObject!= DBNull.Value) { Mes
当使用 expando 对象填充我的数据表时,我在初始化新的 datarow 时遇到以下错误消息。异常(exception)情况是: Invalid Storage Type: DBNull publ
我得到 从类型 'DBNull' 到类型 'Integer' 的转换无效。”错误行“Dim avgObject As string = Cstr(avgCom.ExecuteScalar()) 当删除
当我从数据库中检索任何标量值时,我通常会为可为空的字段编写这样的代码。 cmd.ExecuteScalar() == DBNull.Value ? 0 : (int)cmd.ExecuteScalar
我需要从一个DataRow 中解析一个值并将其分配给另一个DataRow。如果输入有效,则我需要将其解析为 double,或者将 DBNull 值添加到输出。我正在使用以下代码: public dou
我正在尝试执行一个存储过程,然后使用 if 语句检查空值,但我做空了。我是 VB 专家,所以如果我犯了小学生语法错误,请多多包涵。 objConn = new SqlConnection(strCon
如果 DataRow 中的列可能是 DBNull , 是以下将 DBNull 替换为空字符串的最短方法? Dim result As String = if(isDBNull(dataRow1("co
我正在查看我正在处理的 .net 程序的一些代码。该程序的前任作者在一年前将代码给了我。突然,我看到一个我没有接触过的代码抛出的异常: if ((string)row["LevelName"] !=
当用户名与登录我的程序的用户相同时,我编写了从 Access 数据库中检索电子邮件地址的代码。我希望在名为 Email 的文本框中显示电子邮件地址值 Dim x If ConnectionDb.Sta
这个问题偶尔会出现,但我还没有看到令人满意的答案。 典型的模式是(行是DataRow): if (row["value"] != DBNull.Value) { someObject.
我是一名优秀的程序员,十分优秀!