.net 是否可以使用一个SqlCommand进行多个查询?
是否可以向.net中的SqlCommand对象添加多个查询 如果其中一个查询失败,其余的查询成功,那么该命令会将此报告为失败还是成功 最后一个问题:查询是否可以共享相同的参数?那么,这是否可能:.net 是否可以使用一个SqlCommand进行多个查询?,.net,sql,sql-server,.net,Sql,Sql Server,是否可以向.net中的SqlCommand对象添加多个查询 如果其中一个查询失败,其余的查询成功,那么该命令会将此报告为失败还是成功 最后一个问题:查询是否可以共享相同的参数?那么,这是否可能: UPDATE mytable SET column1 = @param1 WHERE recid = @recid; UPDATE mytable2 SET column1 = @param1 WHERE recid = @recid2; (因此参
UPDATE mytable
SET column1 = @param1
WHERE recid = @recid;
UPDATE mytable2
SET column1 = @param1
WHERE recid = @recid2;
(因此参数1在查询之间共享)
谢谢
R在
SqlCommand
对象的CommandText
中可以有多个语句,这不是问题,它们也可以共享参数。它基本上被传递到sql server上的sp_executesql并执行。如果您正在执行多个更新,那么您将希望在事务中执行这些更新,以便在其中一条语句出现故障时可以回滚
如果返回多个记录集,您可以使用
SqlDataReader
的NextResult()
方法来获取下一个结果集。您确实需要一个事务。它不需要是原子的或事务的。我只想执行一组操作。我只是想确定他们每个人都得到了doneok谢谢。。。我不需要交易,因为我不在乎如果一个opf失败了,它们是否完成了…我只需要知道它们中是否有一个失败了。。。你知道这是怎么处理的吗?如果其中任何一个失败了,我会得到通知吗?当你说失败时,你是指sql语句中的语法错误吗?或者,您的意思是,如给出的示例语句中所示,如果两条UPDATE语句中的一条不更新任何行?无论有多少语句,前者都会抛出SqlException,对于后者,我认为您仍然需要将语句分开,以便评估ExecuteScalar()
/ExecuteNonQuery()
后者的返回值。。。好啊那么您的意思是,在这种情况下,我要么分离查询,要么使用事务,对后者来说,就数据库而言,不影响行的更新不是错误。但是,这可能是应用程序逻辑的错误。有两种方法可以处理这个问题,我可以在脑子里想出来,这可能涉及到一个事务,这取决于语句是全部还是没有。您可以使用返回值或使用RAISERROR将消息返回给调用应用程序。