c# - 相当于 If contains using SQL?

标签 c# sql

我正在创建一个程序,它需要检查我的数据库的第 1 列中是否存在一个值,如果不存在则添加它,如果存在则将 1 添加到第 2 列中的值。

目前程序只是将每个值添加到数据库中,我不知道下一步该怎么做,它应该做这样的事情:

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");

感谢您能给我的任何帮助。

最佳答案

您需要 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“like”命令,它应该适用于所有方言。我选择了可​​能更高效的 Microsoft 等效命令。)

上述SQL中,[textbox]表示文本框中的值。您可以使用动态 SQL 或作为参数将其插入到此类查询中。

我还假设您只想对一行执行此操作。如果是这样,那么这需要一个 where 子句来标识行(最好使用主键)。

关于c# - 相当于 If contains using SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10368586/

相关文章:

c# - 仅更新不同的更改

java - 数据库更新后出现 ORA-01733(此处不允许使用虚拟列)

php - 如何将文件图像存储到 mysql (Codeigniter)

c# - 在 ASP.NET MVC 3 中注入(inject) IPrincipal - 我做错了什么?

c# - 列表框中的 WPF 数据模板多态性

c# - 将巨大的 xml 参数传递给存储过程的最佳方法

sql - 删除超过一天的项目 - SQL Server

c# - 如何从 RESTFul 请求中捕获客户端证书并在 C# 中针对服务器上的证书进行验证?

故意在主键 AUTO_INCREMENT 列中插入 `NULL` 时 MySQL 不会失败

sql - 参数化 SQL 的性能