c# - C#中的SQL Server多命令异常捕获
问题描述
我在一个命令中执行多个更新,例如:
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 异常。有没有办法获得所有更新异常?
解决方案
你总是可以使用一系列 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
推荐阅读
- c# - 使用我的 Firebase URL 获取 400(错误请求)
- node.js - 修复全局节点安装
- javascript - React+Next.js+Firebase:auth URL在signInWithEmailAndPassword后更改为用户名和密码
- html - SnipCart 2x 如何在取货时自动将库存数量添加到产品中?
- mysql - 根据具有多条记录的表中另一列的不同值添加值
- arrays - ArrayFormula 与多列的总和和乘法
- c - 我只想显示一个 printf 5 秒
- angular - 仅当填写了任何其他表单域时才需要表单域
- ios - NavigationLink 中的图像不呈现
- python - 我在尝试使用 python 在 linux 中复制文件时遇到问题(当我切换到 Windows 10 时,我也会遇到类似的不一致)