参数查询不工作逃避撇号

问题描述:

我想通过使用带有OleDbConnection的参数化查询来避免在我的字符串变量中逃脱撇号,但它不工作。任何帮助,将不胜感激。我试图插入到Access数据库,我不断收到那些麻烦的HTML代码。参数查询不工作逃避撇号

任何hep将不胜感激。

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 (@Mlt_String_ID,@Lng_ID,@Strg_Name,@Sht_Text,@Lng_Text,@Alt_Text)" 

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 

你没有描述什么“不工作”的含义。你能提供更多信息吗?你是否遇到异常?什么是异常和堆栈跟踪?

在任何情况下,OleDb命令都不支持命名参数。改为使用问号:

Dim SqlString As String = "INSERT INTO Strings (Mlt_String_ID, Lng_ID, Strg_Name, Sht_Text, Lng_Text, Alt_Text) Values (?,?,?,?,?,?)" 

并且参数必须按顺序添加。

+0

我的歉意,插入工作,从我的帖子我提到的结果是讨厌的HTML代码。 “特殊字符的表示。”我尝试过(?,?,?,?,?),但最近添加了字段名称以查看是否有所作为。我会重新测试,虽然肯定,谢谢你的反馈。 – htm11h

+0

正如笔记所示,温度大写C或F前面的度数符号如下所示:° F. °显然代表表示程度的小圆圈。我相信所有参数都是按顺序添加的。重新测试不起作用,与本文中提到的结果相同。 – htm11h