2013-10-16 54 views
0

嗨串。我必須插入下面的字符串到Oracle DB:如何保存含有單引號到Oracle數據庫在C#

String StrDiv = "<div STYLE=" + "'"+"font-family: " + lblPreviewPane.Font.Name + "; font-size: " + lblPreviewPane.Font.Size + "; color: " + ColorPicker1.Color + ""+"'" + ">" + lblPreviewPane.Text + "</div>"; 

我得到StrDiv如下:

"<div STYLE='font-family: Times New Roman; font-size: 8pt; color: #CC33CC'>TEXTSAMPLE</div>" 

但問題是,當我插入串入數據庫,拋出一個錯誤: ORA-00917:缺少逗號

這是因爲STYLE屬性中的單引號。

請引導我解決上述問題。

+0

嗯....逃避報價,讓Oracle接受它們作爲文字字符?在C#中:*使用參數化查詢*。 –

+1

你用什麼代碼將這個值插入到你的數據庫中?我猜你在連接一個SQL語句,並且需要轉義引號。 –

+0

請不要將字符串連接到SQL語句中。使用參數化語句。 –

回答

1

只需使用"''"逃脫"'"而在DB插入數據

String StrDiv = "<div STYLE=" + "''"+"font-family: " + lblPreviewPane.Font.Name + "; font-size: " + lblPreviewPane.Font.Size + "; color: " + ColorPicker1.Color + ""+"''" + ">" + lblPreviewPane.Text + "</div>"; 


"<div STYLE=''font-family: Times New Roman; font-size: 8pt; color: #CC33CC''>TEXTSAMPLE</div>" 
+0

嗨..我用「''」來逃避「'」......這真的起作用了......謝謝:) –

3

可以使用的SqlCommand和SQLCommand.Parameters通過StrDiv作爲參數,它應該是罰款

小例子:

using (SqlCommand myCommand = new SqlCommand(
    "INSERT INTO table_name (column_name) VALUES (@StrDiv)")) { 

    myCommand.Parameters.AddWithValue("@StrDiv", StrDiv); 
    //... 

    myConnection.Open(); 
    myCommand.ExecuteNonQuery(); 
    //... 
} 
相關問題