Я пытаюсь обновить базу данных Sql из приложения Windows Forms в C# и продолжаю сталкиваться с этой ошибкой:
Нарушение ограничения PRIMARY KEY ' PKtblStepCAB0D0D86002590D C». Невозможно вставить дубликат ключа в объект 'dbo.tblStepConfiguration_Cond'. Значение ключа-дубликата равно (1, 5, 20, 3, 1).
Я понимаю, что он пытается сказать, но дело в том, что я не пытаюсь ничего вставить. Я пытаюсь обновить его, используя следующую информацию.
private void SqlUpdateCommand(String DataBase, String DB_ColumnName, TextBox tb_changed, String Cond_ID, String Cond_GroupID)
{
int rows = 0;
if (!String.IsNullOrEmpty(tb_ConfigID.Text) && !String.IsNullOrEmpty(tb_SequenceID.Text))
{
System.Data.SqlClient.SqlConnection conn = null;
string constr = ConfigurationManager.ConnectionStrings["LAP_Configuration.Properties.Settings.LAPConnectionString"].ConnectionString;
Console.WriteLine("Connection String: {0}\n", constr);
conn = new SqlConnection(constr);
try
{
conn.Open();
SqlCommand cmd = new SqlCommand("UPDATE " + DataBase + " SET "+DB_ColumnName +" = @NewName" +
" WHERE (SequenceID = @SequenceNumber AND MasterConfig = @MasterConfig AND StepNumber = @StepNumber AND Con_ID = @Con_ID AND Con_GroupID = @Cond_GroupID)", conn);
cmd.Parameters.AddWithValue("@SequenceNumber", SeqSelected);
cmd.Parameters.AddWithValue("@MasterConfig", ConfigSelect);
cmd.Parameters.AddWithValue("@NewName", tb_changed.Text);
cmd.Parameters.AddWithValue("@StepNumber", StepID);
cmd.Parameters.AddWithValue("@Con_ID", Cond_ID);
cmd.Parameters.AddWithValue("@Cond_GroupID", Cond_GroupID);
rows = cmd.ExecuteNonQuery();
}
finally
{
if (conn != null)
{
conn.Close();
}
conn.Close();
}
}
}
Любой совет, чтобы решить проблему? введите описание изображения здесь