2011-04-12 58 views
2

我刚刚学习Linq到SQL,不太了解。请引导并帮助我。如何确定Linq到SQL中该记录是否已成功添加?

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

+6

如果函数返回,则记录已添加。如果记录无法添加,则会引发异常。 – Gabe 2011-04-12 17:39:51

回答

3

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

如果你想'旗',你可能返回一个布尔值。

public bool AddCustomer() 
{ 
    try{ 
    .... 
    db.SubmitChanges(); 
    return true; 
    } 
    catch(Exception e) 
    { 
    ... 
    return false; 
    } 
} 
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

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