2012-04-28 41 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子句来标识该行(最好使用主键)。