如何确保在Linq to SQL中成功添加了哪条记录?

时间:2011-04-12 17:37:54

标签: c# .net linq linq-to-sql c#-3.0

我刚学习Linq to SQL并且不太了解。请指导和帮助我。

我使用SubmitChanges()添加新记录;如何确认已添加记录?例如,在使用存储过程时,我们使用将标志发送回应用程序但是如何在LINQ to SQL中完成?请指导我。

4 个答案:

答案 0 :(得分:3)

允许您的代码流出您的方法。只有在抛出异常时,您的陈述才会完成。

如果你想要一个'旗帜',你可以返回一个布尔。

public bool AddCustomer()
{
  try{
     ....
     db.SubmitChanges();
     return true;
  }
  catch(Exception e)
  {
    ...
    return false;
  }
}

答案 1 :(得分:2)

你可以做这样的事情;

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

答案 2 :(得分:2)

请参阅:MSDN, How to: Submit Changes to the Database

请注意,有一个overload of SubmitChanges()可让您指定如何处理冲突。

答案 3 :(得分:1)

选中此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();
}