[英]How to use IF EXISTS in SQL (ifexists update, else insert in SQL)
string searched = TextBox1.Text; // for example, text is 4477
...
sorgu.CommandText = "IF EXISTS(SELECT * FROM [Pins] WHERE Pin =' " + searched.ToString() + " ') BEGIN UPDATE [Pins] SET SAY= SAY+1, Pin = ' " + searched.ToString() + " ' END ELSE BEGIN INSERT INTO Pins(SAY,Pin) VALUES (+1,' " + searched.ToString() + " ') END";
...
我正在使用SAY来统计搜索次数。
该代码将列(Pins)上的所有记录更改为搜索的文本。
我的错在哪里?
您需要一个不更新所有记录的位置。 这样可以解决它。。。。。。。
IF EXISTS(SELECT * FROM [Pins] WHERE Pin = 'searched.ToString()')
BEGIN
UPDATE [Pins] SET SAY = SAY + 1
WHERE [Pin] = 'searched.ToString() '
END
ELSE
BEGIN
INSERT INTO Pins(SAY, Pin) VALUES (1, 'searched.ToString()')
END
用伪代码,你是说
IF EXISTS(SELECT Statement) UPDATE ALL ROWS
使用EXISTS进行此操作的正确方法是
UPDATE TABLE
WHERE EXISTS(Correlated SELECT Statement)
您错过了WHERE
子句。
我也更喜欢使用Parameters
而不是字符串串联查询(这会使您的代码容易受到SQL注入攻击)
string searched = TextBox1.Text; // for example, text is 4477
sorgu.CommandText = "IF EXISTS(SELECT * FROM [Pins] WHERE Pin = @searched) BEGIN UPDATE [Pins] SET SAY=SAY+1 WHERE Pin = @searched END ELSE BEGIN INSERT INTO Pins(SAY,Pin) VALUES (1, @searched) END";
sorgu.Parameters.AddWithValue("@searched", TextBox1.Text);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.