【问题标题】:Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints. asp.net c#无法启用约束。一行或多行包含违反非空、唯一或外键约束的值。 ASP.NET C#
【发布时间】:2014-09-04 08:20:44
【问题描述】:

我必须从两个文本框中获取开始日期和结束日期,并根据该日期从数据库中获取数据并显示到网格视图中。

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();
}

【问题讨论】:

  • 您必须调试才能找到错误的实际原因。在dt = state.GetGridDataBy... 处设置断点。在调试器的quick-watch-window 中执行这一行。之后在快速观察窗口中执行dt.GetErrors() 并查看每一行的RowError-property。在那里你会找到它。
  • @TimSchmelter :我已经完成了上述步骤。在 dt 上放置一个断点并运行快速监视窗口。数据集可视化工具不显示表格。我应该在哪里应用 dt.GetErrors() 方法?
  • 我不知道我可以在上面的评论中添加什么以使其更清楚。你不明白什么?在调试器中执行dt=state.GetGridDataBy(DropDownList1.SelectedValue,DropDownList2.SelectedValue, str, str2);。您将在调试器窗口中看到约束异常。然后在快速观察对话框中执行dt.GetErrors()。结果,您将获得所有有错误的行。您会在每一行的RowError 属性中找到有意义的错误消息(也在调试器的快速查看对话框中)。现在清楚了吗?
  • @TimSchmelter 谢谢。
  • 那么你让它工作了吗?真正的问题是什么?

标签: c# asp.net


【解决方案1】:

按照下面给出的步骤:

这实际上对我有用,希望你也能清楚。

  1. 进入数据集,复制GetGridDataBy的查询。
  2. 现在返回主数据集窗口并从列表中删除 GetGridDataBy 查询。
  3. 现在添加新查询并粘贴您从之前的GetGridDataBy 查询中复制的查询详细信息。
  4. 现在将其命名为 GetGridDataBy2
  5. 将后面代码中的所有GetGridDataBy 替换为GetGridDataBy2
  6. 然后运行。

有时由于自动生成签名代码时出现故障而发生此错误。此步骤将帮助您解决此问题。万事如意!

【讨论】:

    猜你喜欢
    • 2012-03-30
    • 2015-12-13
    • 1970-01-01
    • 2012-11-10
    • 2012-01-16
    相关资源
    最近更新 更多