2011-12-14 20 views
0

我已經在C#中創建了Web服務。在該管理面板中,當管理員使用轉義序列字符編輯文件名時,它會給出錯誤。我想在音頻文件名稱中添加's',但是當我更新該文件名時,它會給出錯誤。請將代碼提示給我。這裏是我當前的代碼: 例如:我想要文件名稱:stafford's.mp3音頻文件名不採取轉義序列字符

    protected void dbUpdate(int Id, string newfileName,string newfilePath,string newfileExt,string newfileType) 
{ 
    string filep; 
    if (newfileType == "Image") 
    { 
     filep = newfilePath + newfileType + "/" + newfileName.Replace(" ", string.Empty) + newfileExt; 
    } 
    else 
    { 

     filep = newfilePath + newfileType + "/" + newfileName.Replace(" ", string.Empty) + newfileExt; 
    } 

    String getSQL1 = "UPDATE tbluploadedfilesdetail set FileName='" + newfileName + "' FilePath= '" + filep + "' where ID=" + Id + ";"; 
    MySqlConnection objMyCon1 = new MySqlConnection(connection); 
    objMyCon1.Open(); 
    MySqlCommand cmd2 = new MySqlCommand(getSQL1, objMyCon1); 
    cmd2.ExecuteNonQuery(); 
    objMyCon1.Close(); 
+0

你是否嘗試過逃離現場的角色? (例如「成爲\」) – 2011-12-14 04:43:50

回答

1

如果你用雙引號替換單引號,它會解決你的問題。

... set FileName='" + newfileName.Replace("'", "''") + "' ... 

您應該使用SqlParameters,而不是直接將值替換爲您的SQL。所以查找SqlParameters。

+0

我試過了,但它不起作用:它給出了以下錯誤:您的SQL語法中有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第1行的ID = 136'處使用''FilePath ='http://www.creativeartist.com/Audio/Alone''s.mp3'附近的正確語法 – Developer 2011-12-14 04:54:14