Не удалось включить ограничения. Одна или несколько строк содержат значения, нарушающие ненулевые, уникальные ограничения или ограничения внешнего ключа. asp.net c #

1

Я должен получить дату начала и дату окончания из двух текстовых полей, и в соответствии с этой датой мне нужно получить данные с db и отобразить в виде сетки.

protected void Button1_Click(object sender, EventArgs e)
{    
    String str = DateTime.Now.ToString(TextBox1.Text);
    DateTime tm = Convert.ToDateTime(str);
    String str2 = DateTime.Now.ToString(TextBox2.Text);
    DateTime tm2 = Convert.ToDateTime(str2);

    solarDataSet2TableAdapters.tbl_energy_reportTableAdapter state;
    state = new solarDataSet2TableAdapters.tbl_energy_reportTableAdapter();

    DataTable dt = new DataTable();  
    dt = state.GetGridDataBy(DropDownList1.SelectedValue,DropDownList2.SelectedValue,  

    str, str2);  // Failed to enable constraints. One or more rows contain values  
    //violating non-null, unique, or foreign-key constraints. asp.net c#  

    GridView1.DataSource = dt;
    GridView1.DataBind();
}
  • 2
    Вы должны отладить, чтобы найти фактическую причину ошибки (ий). Установите dt = state.GetGridDataBy... останова в dt = state.GetGridDataBy... Выполните эту строку в окне быстрого просмотра отладчика. После этого выполните dt.GetErrors() в окне быстрого просмотра и посмотрите на RowError каждой строки. Там вы найдете это.
  • 0
    @TimSchmelter: я сделал вышеупомянутый шаг. Установите точку останова на dt и запустите окно быстрого просмотра. Визуализатор набора данных не показывает таблицу. И где я должен применить метод dt.GetErrors ()?
Показать ещё 4 комментария
Теги:

1 ответ

1
Лучший ответ

Выполните следующие действия:

Это на самом деле сработало для меня, надеюсь, даже вы можете очистить.

  1. Перейдите к набору данных и скопируйте запрос GetGridDataBy.
  2. Теперь вернитесь в главное окно набора данных и удалите запрос GetGridDataBy из списка.
  3. Теперь добавьте новый запрос и вставьте данные запроса, которые вы скопировали из предыдущего запроса GetGridDataBy.
  4. И теперь назовите это еще что-то вроде GetGridDataBy2
  5. Замените все GetGridDataBy из кода, содержащегося в GetGridDataBy2.
  6. И затем запустите.

Иногда эта ошибка возникает из-за сбоя при автогенерации сигнатурного кода. Эти шаги помогут вам решить эту проблему. Всего наилучшего!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню