2012-04-28 38 views
2

我正在創建一個程序,需要檢查一個值是否存在於我的數據庫的第1列中,如果沒有,則添加它或者如果它確實然後將第1列中的值加1到第2列。等價於If包含使用SQL?

當前程序僅添加每個值的數據庫,我不知道該怎麼做下一部分,它應該這樣做:

if column 1 contains (textbox) 
column 2 = column 2 + 1 

else column 1 doesnt contain (textbox) 
add to column 1 

我纔剛剛學習C#,這幾乎是第一個SQL我有過要做的,所以請保持簡單的答案。

這是當前工作的代碼的一部分。

System.Data.SqlClient.SqlCommandBuilder cb; 
cb = new System.Data.SqlClient.SqlCommandBuilder(da); 
DataRow dRow = ds1.Tables["Tags"].NewRow(); 
dRow[0] = txtSplittext.Text; 
dRow[1] = 1; 
ds1.Tables["Tags"].Rows.Add(dRow); 
MaxRows = MaxRows + 1; 
inc = MaxRows - 1; 
da.Update(ds1, "Tags"); 

感謝您的任何幫助,可以給我。

+2

與其告訴我們該程序的功能,如果您在概念上告訴我們您要實現的目標,可能會更有幫助。我們可能知道更直接的方法來處理它。但是,我讚揚你嘗試迄今爲止所做的工作,因爲許多新的海報根本無法顯示任何代碼。你已經領先於比賽。 – Marc 2012-04-29 00:02:07

+0

總體而言,該計劃旨在閱讀tweet並翻譯發現的任何文本,這部分旨在記錄它們的標籤以及它們已被使用了多少次。 – user1279252 2012-04-29 00:15:25

+0

對於else子句,你想要添加到第1列中? – 2012-04-29 20:49:20

回答

0

你想在SQL一個基本的更新語句:

update table 
    set column_2 = (case when charindex([textbox], column_1) > 0 then column_2 + 1 else column_2 end), 
    set column_1 = (case when charindex([textbox], column_1) = 0 then column_1 + 1 else column_1 end) 

(你可以選擇使用的SQL「喜歡」命令,該命令應在所有方言的工作,我選擇了一個相當於微軟很可能效率更高。)

在上面的SQL中,[textbox]表示文本框中的值。您可以使用動態SQL或將其作爲參數插入到這樣的查詢中。

我也假設你只想做一行。如果是這樣,那麼這需要一個where子句來標識該行(最好使用主鍵)。