2017-02-16 3 views
4

データベースからデータを取得しています(特にADOを使用してアクセスしています)。次に、既存の単一引用符を2つの単一引用符で置き換えることによって、後でSQLに挿入できる変数を準備しています。Powershell nullのテスト後に失敗します。

データベースからの値がnullになる可能性が高いので、私はそれをテストし、置換がNULLでない場合にのみ置換が行われると想定します。私はそれをテストするとき、私はそれを取得していた値がnullとして登録しないが、私は置き換えてみたときに、私は[System.DBNull]という名前のメソッドが含まれていないため

メソッドの呼び出しが失敗したエラーを取得する「に置き換え'

はここで値を引いた後のコード
$OldAbstract = $rs.Fields.Item("MetaAbstract").value if($OldAbstract -ne $null) {$OldAbstract = $OldAbstract.Replace("'","''")}

のセクションだ、私はそれを印刷し、それが何のように見えます。私はnullのためにそれをテストし、それはそうではないと言います。私はそれをテストしましたが、そうではありません。私はそれがスペースであるかどうかを確認するためにチェックしても、そうではありません。長さは1として報告されています...私は何が起こっているかについて迷っています。

答えて

3

null - データベースヌルの代わりにPowerShell/.net nullをテストしています。 (未テスト)これを試してみてください:それが動作するかどうか

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

マーク答えとして、感謝:) – TechSpud

+0

は、[System.DBNull]のテストのように見える::値が働きました。ありがとう!最終コードは if($ OldAbstract -ne [System.DBNull] :: Value){$ OldAbstract = $ OldAbstract.Replace( "'"、 "' '"}) – Michael

+0

クールです。問題ない :) – TechSpud

関連する問題