Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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# 执行SQL脚本时忽略错误_C#_Sql_Sql Server_Sql Scripts - Fatal编程技术网

C# 执行SQL脚本时忽略错误

C# 执行SQL脚本时忽略错误,c#,sql,sql-server,sql-scripts,C#,Sql,Sql Server,Sql Scripts,如何使代码在执行SQL脚本文件时忽略错误 如果在执行sql脚本文件时出现错误,那么我希望此方法忽略它并继续运行sql脚本文件。目前,如果我将try-catch块放在这个方法中,错误会作为异常被捕获,SQL脚本文件的执行会在错误被捕获后停止。即使SQL Server中存在错误,我也希望继续执行 我怎样才能做到这一点 我的代码如下 private void RunSQLScript() { // file is already defined as a SQL Script fi

如何使代码在执行SQL脚本文件时忽略错误

如果在执行sql脚本文件时出现错误,那么我希望此方法忽略它并继续运行sql脚本文件。目前,如果我将try-catch块放在这个方法中,错误会作为异常被捕获,SQL脚本文件的执行会在错误被捕获后停止。即使SQL Server中存在错误,我也希望继续执行

我怎样才能做到这一点

我的代码如下

private void RunSQLScript()
{        
  // file is already defined as a SQL Script file

  string script = file.OpenText().ReadToEnd();

  SqlConnection conn = new SqlConnection(ConnectionString);

  // split script on GO command
  IEnumerable<string> commandStrings = Regex.Split(script, @"^\s*GO\s*$", RegexOptions.Multiline | RegexOptions.IgnoreCase);

  conn.Open();

  foreach (string commandString in commandStrings)
  {
    if (commandString.Trim() != "")
       {
          new SqlCommand(commandString, conn).ExecuteNonQuery();
       }
  }

  conn.Close();

}
private void RunSQLScript()
{        
//文件已定义为SQL脚本文件
字符串脚本=file.OpenText().ReadToEnd();
SqlConnection conn=新的SqlConnection(ConnectionString);
//运行时拆分脚本命令
IEnumerable commandStrings=Regex.Split(脚本@“^\s*GO\s*$”,RegexOptions.Multiline | RegexOptions.IgnoreCase);
conn.Open();
foreach(commandStrings中的字符串commandString)
{
if(commandString.Trim()!=“”)
{
新的SqlCommand(commandString,conn).ExecuteNonQuery();
}
}
康涅狄格州关闭();
}

将ExecuteOnQuery包装在try/catch块中,并将catch块保留为空。

谢谢。工作。这么简单的事情,我把try-catch放在整个方法上,而不仅仅是ExecuteNonQuery部分。