【发布时间】:2016-07-12 10:22:05
【问题描述】:
我有一个已连接到 SQL Server 的 Web 表单。我可以插入,但如果表已经有相同的信息,我不知道如何进行验证以不插入数据。
如何完成这个过程?
using (SqlConnection con = new SqlConnection("Data Source=hans-pc;Initial Catalog=CntExp;Integrated Security=True"))
{
SqlCommand cmd = new SqlCommand("INSERT INTO PreExp1 (Expe, Usuario) values (@Expe, @Usuario)", con);
cmd.Parameters.AddWithValue("@Expe", TextBox1.Text);
cmd.Parameters.AddWithValue("@Usuario", TextBox2.Text);
//cmd.Parameters.AddWithValue("@Fecha", Datenow());
con.Open();
int insertar = cmd.ExecuteNonQuery();
Response.Write("Inserted" + insertar.ToString());
}
【问题讨论】:
-
尝试插入,命中唯一索引,处理失败。此外,您应该在完成连接后明确关闭连接。
-
欢迎来到 StackOverflow!您的问题有点宽泛,因为有很多不同的方法可以实现这一目标。您可以通过从代码(事务内部)查询数据库或在数据库中使用触发器来检查数据是否存在。 SO 更有可能帮助您解决特定的编码问题。因此,您应该更具体地说明“相同信息”的含义。语义可能有助于决定您是要在代码中还是在数据库级别进行验证。
-
@OmarLopez 如果您正确地构建了表,并且具有正确的引用完整性,那么您的插入应该抛出一个您可以适当捕获和处理的异常。
标签: c# sql asp.net sql-server sql-server-2012