2015-05-06 6 views
0

Я пробовал этот ниже код, но он генерирует уникальную ошибку ограничения ключа. Я бы хотел, чтобы это было всплывающее сообщение; см. мой код ниже.Сообщение об ошибке для дублирования данных в asp.net

using (SqlConnection con2 = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString)) 
{ 
    var fromdate = DateTime.Parse(txtfromdate.Text); 
    var todate = DateTime.Parse(txttodate.Text); 
    var datedif1 = (todate - fromdate).Days; 

    var sqlInsert = new SqlCommand("INSERT INTO datelist ([datedif],[batch],[daywk],[semester],[weekbatch],[subject],[facultyname],[facultyid],[WeekMonth]) VALUES (@datedif,@batch,@daywk,@semester,@weekbatch,@subject,@facultyname,@facultyid,@weekMonth)", con2); 
    var sqlParamater = sqlInsert.Parameters.Add("@datedif", SqlDbType.Date); 
    var sqlParameter1 = sqlInsert.Parameters.Add("@batch", SqlDbType.NVarChar); 
    var sqlParameter2 = sqlInsert.Parameters.Add("@daywk", SqlDbType.NVarChar); 
    var sqlParameter3 = sqlInsert.Parameters.Add("@semester", SqlDbType.NVarChar); 
    var sqlParameter4 = sqlInsert.Parameters.Add("@weekbatch", SqlDbType.NVarChar); 
    var sqlParameter5 = sqlInsert.Parameters.Add("@subject", SqlDbType.NVarChar); 
    var sqlParameter6 = sqlInsert.Parameters.Add("@facultyname", SqlDbType.NVarChar); 
    var sqlParameter7 = sqlInsert.Parameters.Add("@facultyid", SqlDbType.NVarChar); 
    var sqlParameter8 = sqlInsert.Parameters.Add("@WeekMonth", SqlDbType.NVarChar); 

    con2.Open(); 
    try 
    { 
     for (var i = 0; i <= datedif1; i++) 
     { 
      var consecutiveDate = fromdate.AddDays(i); 

      sqlParamater.Value = consecutiveDate; 
      sqlParameter1.Value = batch1; 
      sqlParameter2.Value = dayweek; 
      sqlParameter3.Value = semester; 
      sqlParameter4.Value = weekbatch; 
      sqlParameter5.Value = subject; 
      sqlParameter6.Value = faculty; 
      sqlParameter7.Value = facultyid; 
      sqlParameter8.Value = weekmonth; 

      int s = sqlInsert.ExecuteNonQuery(); 
     } 
     con2.Close(); 
    } 
    catch(ConstraintException ex) 
    { 
     throw new ApplicationException("data are duplicated"); 
    } 
} 

Вот снимок экрана ошибки, которые я получаю,

+0

Как насчет того, чтобы исключать исключение, но обрабатывать его самостоятельно и показывать его как всплывающее окно? Система не знает, чего вы хотите, если не сделаете это самостоятельно. –

+0

В блоке try он вставляет значения, а в блоке catch он должен показывать мне данные об ошибках a; готовые вставленные. Это то, что я сделал в этом коде, но не работает –

+0

http://stackoverflow.com/questions/6199513/ try-catch-does-not-catch catch (SqlException ex) { MessageBox.Show (ex.ToString()); } – Vinay

ответ

1

Вы ловя ConstraintException, но вставка бросает SqlException, которая не является подклассом ConstraintException. Измените уловку, и вы ее обработаете.