我试图通过使用带有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
答案 0 :(得分:1)
你没有描述“不工作”的含义。你能提供更多信息吗?你有例外吗?什么是异常和堆栈跟踪?
无论如何,OleDb命令不支持命名参数。改为使用问号:
Dim SqlString As String = "INSERT INTO Strings (Mlt_String_ID, Lng_ID, Strg_Name, Sht_Text, Lng_Text, Alt_Text) Values (?,?,?,?,?,?)"
必须按顺序添加参数。