C# 如何在LINQtoSQL中确保记录添加成功与否?
我只是在学习LINQtoSQL,知道的不多。请引导和帮助我C# 如何在LINQtoSQL中确保记录添加成功与否?,c#,.net,linq,linq-to-sql,c#-3.0,C#,.net,Linq,Linq To Sql,C# 3.0,我只是在学习LINQtoSQL,知道的不多。请引导和帮助我 我正在使用SubmitChanges()添加新记录;如何确认已添加记录?例如,在使用存储过程时,我们用来将标志发送回应用程序,但在LINQtoSQL中是如何实现的?请指导我。允许您的代码从您的方法中流出。只有当抛出异常时,您的语句才会未完成 如果你想要一个“旗帜”,你可以返回一个布尔 public bool AddCustomer() { try{ .... db.SubmitChanges(); re
我正在使用SubmitChanges()添加新记录;如何确认已添加记录?例如,在使用存储过程时,我们用来将标志发送回应用程序,但在LINQtoSQL中是如何实现的?请指导我。允许您的代码从您的方法中流出。只有当抛出异常时,您的语句才会未完成 如果你想要一个“旗帜”,你可以返回一个布尔
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请参见:
请注意,有一种方法可以让您指定如何处理冲突 检查这个
此时,数据库检测到的任何错误都会导致提交过程停止,并引发异常。对数据库的所有更改都会回滚,就像从未发生提交一样。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();
}
如果函数返回,则记录已被添加。如果无法添加记录,将引发异常。