我刚刚学习Linq到SQL,不太了解。请引导并帮助我。如何确定Linq到SQL中该记录是否已成功添加?
我正在使用SubmitChanges()添加新记录;我如何确认记录已被添加?例如,在使用存储过程中,我们使用将标志发送回应用程序,但是它是如何在LINQ to SQL中完成的?请指导我。
我刚刚学习Linq到SQL,不太了解。请引导并帮助我。如何确定Linq到SQL中该记录是否已成功添加?
我正在使用SubmitChanges()添加新记录;我如何确认记录已被添加?例如,在使用存储过程中,我们使用将标志发送回应用程序,但是它是如何在LINQ to SQL中完成的?请指导我。
允许您的代码流出您的方法。只有当抛出异常时,你的陈述才会完成。
如果你想'旗',你可能返回一个布尔值。
public bool AddCustomer()
{
try{
....
db.SubmitChanges();
return true;
}
catch(Exception e)
{
...
return false;
}
}
你可以这样做;
public void Save()
{
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
// Make changes here.
try
{
db.SubmitChanges();
}
catch (Exception err)
{
//Log error
}
}
如果没有抛出异常,您可以假定数据保存正确。虽然另一种选择是这样的。如果保存成功
public bool Save()
{
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
// Make changes here.
try
{
db.SubmitChanges();
return true;
}
catch (Exception e)
{
//Log the error
return false;
}
}
返回True,否则返回False
参见:MSDN, How to: Submit Changes to the Database
注意,有一个overload of SubmitChanges(),可以让你specidy如何处理冲突。
入住这http://msdn.microsoft.com/en-us/library/bb399378.aspx
此时,由数据库检测到任何错误导致提交过程停止,并且将引发异常。对数据库的所有更改都会回滚,就好像没有提交任何提交。 DataContext仍然具有所有更改的完整记录。因此,您可以尝试纠正问题并再次调用SubmitChanges
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
// Make changes here.
try
{
db.SubmitChanges();
}
catch (ChangeConflictException e)
{
Console.WriteLine(e.Message);
// Make some adjustments.
// ...
// Try again.
db.SubmitChanges();
}
如果函数返回,则记录已添加。如果记录无法添加,则会引发异常。 – Gabe 2011-04-12 17:39:51