Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在LINQtoSQL中确保记录添加成功与否?_C#_.net_Linq_Linq To Sql_C# 3.0 - Fatal编程技术网

C# 如何在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

我只是在学习LINQtoSQL,知道的不多。请引导和帮助我


我正在使用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();
}

如果函数返回,则记录已被添加。如果无法添加记录,将引发异常。