将listview复制到sql表时如何转义撇号?

时间:2012-12-10 19:23:28

标签: xml-parsing apostrophe

我是一名使用VS2010并在VB中编码的新手程序员。我有一个Windows窗体应用程序,它解析多个XML文件并将数据存储在SQL Server 08中的单个表中。该应用程序解析XML没有问题,但是,我的问题是当我的INSERT查询运行时,它会在它到来时停止跨越包含单引号的字段(即包含字符串“O'Leary,John”的CustomerName)。由于listview在单引号保持不变的情况下填充得很好,我假设我的问题的根源是我的实际INSERT sql查询。我试图将单引号加倍以逃避它,但这样做我的查询甚至不会执行,而是给我一个错误消息。任何人都可以建议一种方法来有效地转义(或替换)此字符串中的单引号,以便数据将写入我的表?请记住,我正在使用此应用程序解析数千个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()

1 个答案:

答案 0 :(得分:0)

使用参数化查询,a)防止SQL注入黑客b)自动处理撇号和命令字符

请参阅http://csharp-station.com/Tutorial/AdoDotNet/Lesson06

虽然有很多教程