无法在参数化查询中转义撇号/特殊字符

时间:2011-11-30 16:58:33

标签: sql vb.net ms-access

已解决:数据是从具有html编码的Gridview中读取的。解决方案如下......     Dim Sht_Text As String = HttpUtility.HtmlDecode (row.Cells.Item(0).Text)

我试图通过使用OleDbConnection的参数化查询来防止必须在我的字符串变量中转义撇号和其他特殊字符。我有相同顺序的所有参数,插入工作,它只是不维护字符。我一直得到那些讨厌的HTML代码。任何帮助,将不胜感激。我试图从网页插入Access数据库。正如我所提到的,它的工作,而不是特殊的角色。

以下是代码:

Dim pConn As New OleDb.OleDbConnection pConn = New OleDbConnection(cb.ConnectionString)  
Dim SqlString As String = "INSERT INTO Strings (Mlt_String_ID, Lng_ID, Strg_Name, Sht_Text, Lng_Text, Alt_Text) Values (?, ?, ?, ?, ?, ?)"  

Using cmd As New OleDbCommand(SqlString, pConn)     
    cmd.CommandType = CommandType.Text     
    cmd.Parameters.AddWithValue("@Mlt_String_ID", Mlt_String_ID)
    cmd.Parameters.AddWithValue("@Lng_ID", Lng_ID)
    cmd.Parameters.AddWithValue("@Strg_Name", Strg_Name)
    cmd.Parameters.AddWithValue("@Sht_Text", Sht_Text)
    cmd.Parameters.AddWithValue("@Lng_Text", Lng_Text)
    cmd.Parameters.AddWithValue("@Alt_Text", Alt_Text)

    pConn.Open()
    cmd.ExecuteNonQuery()
    pConn.Close()
End Using 

更新示例:这是在插入后直接来自访问表。

String_ID String_Name  Long_Text  Short_Text  Alternate_Text Multi_String_ID Lang

993       U_°C_fr °C    °C     °C        651             fr

652       U_°C_jp      °C         °C          °C             651             jp

651       U_°C         °C         °C          °C             651             en

jp和en记录已经存在,fr记录的插入将html代码推送到代表度数符号的小圆圈。也适用于所有其他特殊字符。

1 个答案:

答案 0 :(得分:0)

已解决:数据是从具有html编码的Gridview中读取的。解决方案如下...... Dim Sht_Text As String = HttpUtility.HtmlDecode(row.Cells.Item(0).Text)