当用户插入值时,他们会点击“保存”。按钮,通过"插入到表格中将输入的值插入SQL数据库..."言。
但是,我需要在点击“保存”时生成错误声明。如果满足以下条件,则按钮: - 表中已存在ccy1和ccy2的组合
示例表:
ccy1 ccy2评分
EUR USD 1.3
GBP USD 1.7
现在,如果用户尝试添加ccy1 = EUR和ccy2 = USD的第三行,则会产生错误,因为此组合已经存在(在表的第1行)。
所以我希望我的C#代码类似于:
if (***combination of ccy1 and ccy2 already exists then***)
{ "ERROR MSG" }
else
{
sql += "INSERT INTO table values (ccy1, ccy2, rate)"
}
这是标有星星的线条,我尝试了几种方法后无法理解。
非常感谢任何帮助。
谢谢, 约翰
答案 0 :(得分:0)
declare @exists bit = 1
if not Exist(select 1 from Table)
begin
@exists = 0
insert into TABLEX (s, s, s, s, s)
Values (@ccy1, @ccy2, @rate, etc...)
end
select @exists
这将返回文件是否存在,如果不存在则将其插入。
在您的代码中,您可以检查返回值,如果返回1则抛出错误。
答案 1 :(得分:0)
通常,您可以使用数据库表上的唯一约束来执行此操作。然后,尝试插入。如果列组合存在,则会出现约束违例异常。在中违反了约束(如果你的桌子上有多个<)>,这有点痛苦,但可能。
如果您需要更多控制,或者想要更好地格式化异常,您可以执行“if exists(select * from table where col1 = ... and col2 = ...)”test(如建议的那样)(但是返回结果变量或输出参数。)