使用参数查询无效的转义撇号

时间:2011-11-28 14:41:05

标签: asp.net vb.net ms-access

我试图通过使用带有OleDbConnection的参数化查询来防止必须在我的字符串变量中转义撇号,但它不起作用。任何帮助,将不胜感激。我正在尝试插入Access数据库,我不断收到那些讨厌的HTML代码。

任何肝脏都会受到赞赏。

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

1 个答案:

答案 0 :(得分:1)

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

无论如何,OleDb命令不支持命名参数。改为使用问号:

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

必须按顺序添加参数。