【发布时间】:2011-11-30 16:58:32
【问题描述】:
已解决:正在从具有 html 编码的 Gridview 读取数据。解决方案如下... Dim Sht_Text As String = HttpUtility.HtmlDecode(row.Cells.Item(0).Text)
我试图通过使用带有OleDbConnection 的参数化查询来避免必须在我的字符串变量中转义撇号和其他特殊字符。我的所有参数都以相同的顺序排列,插入工作正常,只是不维护字符。我不断收到那些讨厌的 html 代码。任何帮助,将不胜感激。我正在尝试从网页插入 Access db。正如我所提到的,它的工作原理,只是不是特殊字符。
代码如下:
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代码。也适用于所有其他特殊字符。
【问题讨论】:
-
您说您“不断收到那些讨厌的 html 代码”——您遇到了什么错误?你是如何运行这个 VB.NET 代码的? (因为如果您遇到与 HTML 相关的问题,听起来好像在某处涉及网站/服务器。)
-
你能提供一个你正在谈论的html代码的例子吗?插入语句的结果示例将有助于故障排除。
-
请查看更新后的帖子。
-
您作为
AddWithValue的第二个参数提供的变量的值是多少?我猜想这些字符串中存在 HTML 编码,在这种情况下,您的问题与示例代码无关,而是在流程的早期。 -
在记录号 993 的情况下,Lng_Text、Sht_Text 和 alt_Text 的值为:°C