我的程序中有一个表单,有两个下拉菜单和三个按钮。当我运行表单时,我希望两个下拉列表为空白,并且其中一个按钮被禁用。我有这个设置,工作正常,但我已经在程序中的其他类和表单,并回来改进一些东西,我发现代码不再有效。这些行特别是:
private void mainForm_Load(object sender, EventArgs e)
{
this.roomsTableAdapter.Fill(this.bookingSystemDatabaseDataSet.rooms);
timeBox.ResetText();
roomBox.ResetText();
updateTextOutput();
bookButton.Enabled = false;
}
第一行使用TableAdapter填充相关的房间'下拉框,它工作,但此行之后的代码似乎根本没有执行。评论这条线意味着他们被执行,但显然我的房间'下拉将是空的。我已经尝试将这些行移动到表单的主执行点,但同样的事情发生了。
此外,我已经尝试填补这些房间'以其他方式下载,包括:
roomBox.DataSource = roomsTableAdapter.Fill(bookingSystemDatabaseDataSet.rooms);
和
roomsTableAdapter.Fill(bookingSystemDatabaseDataSet.rooms);
roomBox.DataSource = roomsTableAdapter;
当然,这些尝试非常相似,但我想我会试一试。事实证明,在每种情况下都会发生完全相同的事情; ' roomBox'填充,然后忽略其余的代码。通过逐步调试我已经认为是真实的调试,代码甚至没有被我执行。没有错误,程序运行,为什么这些行被忽略?
答案 0 :(得分:1)
虽然代码看起来运行良好,但实际上却抛出了异常 - 正如sgmoore所怀疑的那样,但它并没有导致中断。 gunr2171给出了预后:
按Ctrl + Alt + E打开“例外”窗口,然后勾选Common Language Runtime Exceptions
下Thrown
的复选框。这使我能够看到错误(Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
)实际上是显而易见的。我通过删除数据集中房间的引用并重新创建它来解决这个问题。
在sgmoore和gunr2171的帮助下解决。