私はVS2010を使用し、VBでコーディングする初心者プログラマーです。複数のXMLファイルを解析してSQLServer08の単一のテーブルにデータを格納するWindowsフォームアプリケーションがあります。アプリは問題なくXMLを解析しますが、私の問題は、INSERTクエリを実行すると停止することです。一重引用符を含むフィールド(つまり、文字列 "O'Leary、John"を含むCustomerName)全体。リストビューは一重引用符をそのままにして問題なく表示されるため、問題の原因は実際のINSERTsqlクエリにあると想定しています。エスケープするために一重引用符を2倍にしようとしましたが、そうするとクエリが実行されず、代わりにエラーメッセージが表示されます。データが私のテーブルに書き込まれるように、この文字列の単一引用符を効果的にエスケープ(または置換)する方法を誰かが提案できますか?このアプリを使用して数千のXMLファイルを解析しているため、各XMLファイルを個別に調べて、問題のある文字列を「修正」することはできません。これは、リストビューからデータを取得してテーブルにロードしようとしているコードのサンプルです。
query1.CommandText = "INSERT INTO Cust_Tbl(CustomerID,CustomerName,SaleDate)
VALUES " & "('" & lvitem.subitems(0).Text & "','" _
& lvitem.subitem(1).Text & "','" & lvitem.subitems(2).Text & "')"
query1.ExecuteNonQuery()