2016-04-04 62 views
1

我用這個代碼UPDATE SQL表的原始值C#

SqlCommand Update = new SqlCommand("UPDATE TermsTable SET Doc_ID += @Doc, Freq += @Frq ,Postion += @Pos WHERE [email protected] ", GetConnection()); 

Update.Parameters.Add(@"Doc", SqlDbType.NVarChar).Value = (";" + ID.ToString()).ToString(); 
Update.Parameters.Add(@"Frq", SqlDbType.NVarChar).Value = (";" + PureContent.CountWordinThext(word, PureContent.GetContentPure)).ToString(); 
Update.Parameters.Add(@"Pos", SqlDbType.NVarChar).Value =(";" + PureContent.GetPostionWithinStrin(PureContent.GetContentPure, word)).ToString(); 
Update.Parameters.Add(@"Trm", SqlDbType.NVarChar).Value = (";" + word.ToLower()).ToString(); 

Update.ExecuteNonQuery(); 
Update.Parameters.Clear(); 

查詢若要增加新的價值,它的原始值,它的工作我的SQL的機器上精細更新表 - 否則我的機器它執行,但沒有在我的表中更新。

+0

爲什麼要附加一個' 「;」 +「所有時間? –

+0

如果它沒有更新行並且沒有返回任何錯誤,則沒有任何內容符合'where'子句。 –

+1

用try/catch語句嘗試圍繞它調試你的代碼,這樣你就可以看到它返回的異常 –

回答

1

變化:

Update.Parameters.Add(@"Trm", SqlDbType.NVarChar).Value = (";" + word.ToLower()).ToString(); 

Update.Parameters.Add(@"Trm", SqlDbType.NVarChar).Value = word; 

刪除分號搜索僅word 「術語」 你想和刪除ToLower,因爲它是區分大小寫的。

編輯

順便說所有這些ToString()是多餘的;例如,你可以改變:

Update.Parameters.Add(@"Doc", SqlDbType.NVarChar).Value = (";" + ID.ToString()).ToString(); 

Update.Parameters.Add(@"Doc", SqlDbType.NVarChar).Value = ";" + ID; 
+1

謝謝我的@Bassem先生,我只是想我的注意力,看看我添加';'到'term'謝謝 –

+0

謝謝艾哈邁德。樂意效勞。 –