【发布时间】:2014-01-14 14:01:03
【问题描述】:
如果有人能向我解释这有什么问题,我会非常感激,因为它没有抛出异常,所以我看不出它为什么不更新记录。
对不起,我应该说我正在尝试更新数据库中的现有记录,“CompName”被用作主键,这不是我的数据库设计或应用程序,或者我会使用 int 作为 id 和编码的东西大不相同。
using (CompanyAndContactDataContext dc = new CompanyAndContactDataContext())
{
try {
Company c = (from datavalue in dc.Companies
where datavalue.CompanyName == CompName
select datavalue).First();
c.CompanyName = txtEditCompanyName.Text;
c.CompanyEmailAddress = txtEditCompanyEmail.Text;
c.CompanyTelephoneNumber = txtEditCompanyTelephone.Text;
c.CompanyFaxNumber = txtEditCompanyFax.Text;
c.CompanyAddress1 = txtEditAddress1.Text;
c.CompanyAddress2 = txtEditAddress2.Text;
c.CompanyAddress3 = txtEditAddress3.Text;
c.CompanyAddress4 = txtEditAddress4.Text;
c.PostCode = txtEditPostcode.Text;
dc.SubmitChanges();
} catch (Exception exep) {
}
}
【问题讨论】:
-
去掉try catch就可以看到了。
-
抱歉,我忘了在问题上添加一个消息框...让我再看一遍:(
-
永远不要有一个空的
catch!至少记录错误 - 在这种情况下,它肯定会帮助您找到错误。 -
是的,永远不要捕获异常,除非你打算用它做点什么(重新抛出不算)。另外,请尝试 FirstOrDefault() 而不是 First,除非您确定会有一个匹配条目
-
@Sam 如果你完全删除了catch,并且实际上有一个异常被抛出,Visual Studio 将在这一行停止,你可以使用它来查看异常的详细信息。比将它放入代码中的消息框并尝试以这种方式解决它要容易得多!
标签: c# .net sql-server wpf linq