4
我从数据库中提取数据(特别是使用ADO访问)。然后,我准备将可能插入到SQL中的变量通过用两个单引号替换任何现有的单引号。PowerShell替换失败后测试为空
因为来自数据库的值非常可能为空,所以我测试它,并且只有在非空时才会发生替换。我得到它的价值不登记为空时,我测试了一下,但是当我试图替换,我得到的错误
方法调用失败,因为[System.DBNull]不包含名为方法“替换”。
这里的代码$OldAbstract = $rs.Fields.Item("MetaAbstract").value if($OldAbstract -ne $null) {$OldAbstract = $OldAbstract.Replace("'","''")}
部分拉动值后,我打印出来,它看起来像什么。我测试了它为空,它说它不是。我测试了它的“”,事实并非如此。我甚至检查过它是否是一个空间,事实并非如此。报告的长度为1 ...我对于发生了什么事情感到不知所措。
标记为答案,如果它的工作,谢谢:) – TechSpud
看起来像测试[System.DBNull] ::值工作。谢谢!最终的代码是: if($ OldAbstract -ne [System.DBNull] :: Value){$ OldAbstract = $ OldAbstract.Replace(“'”,“''”)} – Michael
很酷。没问题 :) – TechSpud