【问题标题】:SQL server multiple command exception catch in c#C#中的SQL Server多命令异常捕获
【发布时间】:2019-03-13 20:32:06
【问题描述】:

我在一个命令中执行多个更新 例如:

System.Data.SqlClient.SqlCommand command = new 
System.Data.SqlClient.SqlCommand();
command.CommandText="executing first updateSP" +"executing second 
updateSP"+.....+"executing 10th updateSP"
try
{
command.ExecuteNonQuery();
}
catch(sqlException ex)
{
ex.message;
}

如果第 2、3、4 次更新出现异常,但在 catch 块中我只得到一个 spupdate 异常。 有什么方法可以获取所有更新异常?

【问题讨论】:

  • 是的,按顺序进行。 =)

标签: c# .net sql-server try-catch


【解决方案1】:

你总是可以使用一系列 SQL 文本命令,我也总是使用连接来创建命令:

string[] cmds = new string[3] {  sp1_SQL, sp2_SQL, sp3_SQL };
try
{
  foreach( string sql in cmds)
  {
     using(System.Data.SqlClient.SqlCommand command = conn.CreateCommand())
     {
       command.CommandText = sql;
       var rtn = command.ExecuteNonQuery();
     }
   }
}
catch(sqlException ex)
{
  ex.message;
}

此代码将在第一个异常后中止,但如果您想继续执行每个语句而不考虑异常(让我的肚子受伤),然后将 try/catch 移动到 foreach

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多