私はファイルとフォルダからデータを収集し、SQLデータベースにアップロードする非常に簡単なスクリプトを作成しました。私は自分の問題がparameterized sqlの問題に関連していると信じていますが、どうやって、なぜか分かりません。ExecuteNonQuery()を使用しているPowershellスクリプトで例外が発生しました "不正な構文が 's'の近くにあります。
私は私は何をする必要があることになっていくつかの文字を防ぐために、SQL文字列を再フォーマットであることを考える。
すべてのヘルプ高く評価しました。あなたが挿入しようとしているものは何でもデータ
INSERT INTO FileSizeTable (FileName,FileSize,FileNameLength,Date) VALUES ('ATI Te
chnologies','61.16 MB','39','05/24/2013 21:05:56')
ATI Technologies 61.16 MB 39
1
INSERT INTO FileSizeTable (FileName,FileSize,FileNameLength,Date) VALUES ('ATIToo
l','0.00 MB','30','05/24/2013 21:05:56')
ATITool 0.00 MB 30
1
INSERT INTO FileSizeTable (FileName,FileSize,FileNameLength,Date) VALUES ('Auran'
,'7,496.04 MB','28','05/24/2013 21:05:56')
Auran 7,496.04 MB 28
Exception calling "ExecuteNonQuery" with "0" argument(s): "Incorrect syntax near
's'.
Unclosed quotation mark after the character string ')'."
At line:143 char:25
+ $Command.ExecuteNonQuery()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : SqlException
あなたの商品アイテムの中には、名前に一重引用符(アポストロフィ)があります。 –
さて、それは速かった。 ロジャーは間違いなく、時には余分なアポストロフィーがありました。出力が逆転しているためにエラーが表示されませんでした。 私はこの問題を解決するためにreplaceを使用しました。 $ x = $ x.Replace( "'"、 "") 私は心配するはずの文字はありますか?または私の弦をきれいにするためのより良い方法は? 今のところこれが機能します。 –
文字の置き換えはこれまでのところしか得られませんが、欠落している奇妙なエッジケースは常に*あります。あなたが見つけたリンクと私の答えが示すようにparamterizedクエリを使用してください。 – alroc