![]() |
1
8
您可以将字段环绕IsNull或考虑空值的某些内容
|
![]() |
2
3
减少数据库的负载并在源代码处攻击问题不是更好的主意吗? 通常,当您有一个处理自己提交的页面(即表单操作属性指向自身)时,会发生这种错误,因此当有人在发布内容后单击刷新时,发布数据仍然是“活动的”,并被发布回该页面。 一个更好的方法是将数据提交给另一个处理插入的对象,然后将其重定向回其来源,重定向将清除发布数据,并为自己保存许多不必要的查询。 只是我的2C |
![]() |
3
2
不是有效的语法 使用ISnull() 所以:
|
![]() |
4
2
如果您不希望在表中有重复项,可能您的表应该在字段1、字段2和字段3上有一个主键或至少一个唯一的聚集索引。 这样,如果行已经存在,您可以尝试插入并捕获错误。 |
![]() |
5
2
以下情况会有所帮助。 field1为空或@field1=field1 |
![]() |
6
2
在字段定义中,您可以使用非空约束,这样空元素就不会出现在那里。 http://www.w3schools.com/SQl/sql_notnull.asp 并使用SQL唯一约束,因此它们必须是唯一的。 http://www.w3schools.com/SQl/sql_unique.asp
如果满足这些条件,您可以插入。 希望我扣好扳机。:) |
![]() |
7
1
如果要将@field1设置为空,则必须使用is而不是=。空值不是用于相等运算符的角。您需要为此使用等价类型“is”。 string cmdText = " if (not exists(select * from table where field1 = @field1 and field2 = @field2 and field3 = @field3)) Insert into table(field1,field2,field3) Values(@field1,@field2,@field3)"; 去 string cmdText = ""; if (txtfield1.text != "") cmdText = " if (not exists(select * from table where field1 = @field1 and field2 = @field2 and field3 = @field3)) Insert into table(field1,field2,field3) Values(@field1,@field2,@field3)"; else cmdText = " if (not exists(select * from table where field1 IS @field1 and field2 = @field2 and field3 = @field3)) Insert into table(field1,field2,field3) Values(@field1,@field2,@field3)"; end if 冲洗、重复和重构:) |
![]() |
Haim Ohayon · 这些链接之间有什么区别? 3 年前 |