测试后,Powershell替换失败

时间:2017-02-16 15:29:57

标签: powershell

我从数据库中提取数据(专门使用ADO访问)。然后我准备变量,以便以后可以通过用两个单引号替换任何现有的单引号来插入SQL。

因为来自数据库的值很可能是null,所以我测试它并且只有在它为非null时才会发生替换。当我测试它时,我得到的值没有注册为null,但是当我尝试替换时,我得到了错误

  

方法调用失败,因为[System.DBNull]不包含名为“Replace”的方法。

以下是代码部分$OldAbstract = $rs.Fields.Item("MetaAbstract").value if($OldAbstract -ne $null) {$OldAbstract = $OldAbstract.Replace("'","''")}

拉出值后,我打印出来,看起来什么都没有。我测试它为null,它说它不是。我测试它是为了“”,但事实并非如此。我甚至检查过它是否是一个空间,但事实并非如此。报告的长度为1 ...我不知道发生了什么。

1 个答案:

答案 0 :(得分:3)

您正在测试错误类型的null - PowerShell / .net null而不是数据库null。试试这个(未经测试):

$OldAbstract = $rs.Fields.Item("MetaAbstract").value
if($OldAbstract -isnot [System.DBNull]) {$OldAbstract = $OldAbstract.Replace("'","''")}