【发布时间】:2011-09-07 03:20:28
【问题描述】:
如果您能帮帮我,我正在尝试更新具有唯一约束的表,该约束位于所有 4 个键 (Role_ID, Track_ID, Person_ID, Conference_ID) 上。
为什么不能更新?
错误:
描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。
异常详细信息:System.Data.SqlClient.SqlException:违反 唯一键约束“UK_conferenceRole”。无法插入重复键 在对象“dbo.ConferenceRole”中。声明已终止。
代码:
var sqlCon7 = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
string query7 = @"update ConferenceRole set Role_ID =" + 3 + ",Person_ID='" + idp + "'where Conference_ID ='" + conference + "'and Track_ID='" + TrackId + "'";
SqlCommand cmd7 = new SqlCommand(query7, sqlCon7);
cmd7.CommandType = CommandType.Text;
try
{
sqlCon7.Open();
cmd7.ExecuteNonQuery();
sqlCon7.Close();
}
catch (Exception ee)
{
throw ee;
}
提前致谢
【问题讨论】:
-
首先,请停止直接使用ADO.NET,至少使用类似这个库的东西abstractsql.codeplex.com
-
请,请,停止使用字符串连接来构建 sql 查询!您已经在使用 SqlCommand 对象,所以也要使用参数!
标签: c# asp.net sql sql-server