2011-11-28 94 views
0

我想通過使用帶有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 

回答

1

你沒有描述什麼「不工作」的含義。你能提供更多信息嗎?你是否遇到異常?什麼是異常和堆棧跟蹤?

在任何情況下,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