如何确定在Linq到SQL记录已添加成功或不
本文关键字:添加 成功 记录 SQL 何确定 Linq | 更新日期: 2023-09-27 17:50:13
我正在学习Linq to SQL,知道的不多。请指导和帮助我。
我正在使用SubmitChanges()添加一个新记录;如何确认记录已添加?例如,在使用存储过程中,我们使用发送一个标志回应用程序,但它是如何在LINQ到SQL?
允许代码从方法中流出。只有抛出异常时,语句才没有完成。
如果你想要一个'标志',你可以返回一个bool值。
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,如何:向数据库提交更改
注意,有一个SubmitChanges()的重载,它将允许您指定如何处理冲突。
检查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();
}