Хотя есть несколько улучшений, которые можно и нужно сделать в исходном коде, опубликованном, как отмечено другими пользователями (с помощью операторов, ExecuteNonQuery и т. Д.), Если все, что вы хотите сделать, это обнаружить нарушения ограничений первичного ключа, то вы можете проверить ошибкуномер SqlException в блоке перехвата.Номер ошибки будет 2627. Используя существующий код, он будет выглядеть следующим образом ...
try
{
string strConnectionString = ConfigurationManager.ConnectionStrings["SqlServerCstr"].ConnectionString;
SqlConnection myConnection = new SqlConnection(strConnectionString);
myConnection.Open();
string hesap = Label1.Text;
string musteriadi = DropDownList1.SelectedItem.Value;
string avukat = DropDownList2.SelectedItem.Value;
SqlCommand cmd = new SqlCommand("INSERT INTO AVUKAT VALUES (@MUSTERI, @AVUKAT, @HESAP)", myConnection);
cmd.Parameters.AddWithValue("@HESAP", hesap);
cmd.Parameters.AddWithValue("@MUSTERI", musteriadi);
cmd.Parameters.AddWithValue("@AVUKAT", avukat);
cmd.Connection = myConnection;
SqlDataReader dr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
Response.Redirect(Request.Url.ToString());
myConnection.Close();
}
catch (SqlException ex)
{
if (ex.Number == 2627)
{
// Add a javascript alert to let the user know that the same HESAP value already exists.
}
else
{
// Rethrow the exception.
throw;
}
}