2011-11-30 57 views
0

已解决:正在从具有html编码的GridView中读取数据。该解决方案是以下... 昏暗Sht_Text的String = HttpUtility.HtmlDecode(row.Cells.Item(0)。文本)无法在参数化查询中跳过撇号/特殊字符

我想不必逃避撇号和其它特殊字符,以防止我的字符串变量通过使用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代码。也适用于所有其他特殊字符。

+2

你说你“不断收到那些讨厌的html代码” - 你得到的错误是什么?你如何运行这个VB.NET代码? (因为听起来好像有一个网站/服务器涉及到某个地方,如果你得到与HTML相关的问题。) – bouteillebleu

+0

你能提供一个你正在谈论的html代码的例子吗?插入语句的结果示例将有助于进行故障排除。 – JOpuckman

+0

请参阅更新后的帖子。 – htm11h

回答

0

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