如果另一个命令成功,则执行另一个命令

本文关键字:命令 另一个 执行 成功 如果 | 更新日期: 2023-09-27 17:56:30

我正在使用MySQL-Connector/Net。

我如何确保命令确实已执行。它是这样工作还是那样工作?

我希望里面的命令只是被执行,如果第一个命令成功了,因为第二个命令正在更新统计信息。

我需要它用于 sqlcommand 以及sql_adapter更新和填充命令。

if (sql_command.ExecuteNonQuery() != 0)
{
    sql_command2.ExecuteNonQuery();
}
if (sql_adapter.Fill(dataSet, "Entry") != 0)
{
    sql_command2.ExecuteNonQuery();
}

如果另一个命令成功,则执行另一个命令

使用以下命令:

if (sql_command.ExecuteNonQuery() > 0)
{
    sql_command2.ExecuteNonQuery();
}

执行非查询返回受影响的记录数。(通过命令本身和任何关联的触发器)

如果你对成功命令1的定义是some记录得到更新,以便你运行command2来更新统计信息,那么上面的代码就足够了。

如果成功命令1的定义是否正在运行**without**出现任何错误(无论更新的记录如何),请使用以下命令:

sql_command.ExecuteNonQuery();
sql_command2.ExecuteNonQuery();

这是因为如果没有记录受到影响,则 ExecuteNonQuery 将返回 0,并且当查询/存储过程中计数**SET NOCOUNT ON**时,在某些成功执行时也可以返回 -1。(-1 也在回滚等时返回)

使用 try/catch 查看任何异常:

try { sql_command.ExecuteNonQuery(); }
catch { MessageBox.Show("The first SQL command failed"); }
sql_command2.ExecuteNonQuery();

在此处阅读有关SqlCommand.ExecuteNonQuery()例外的更多信息:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery(v=vs.110).aspx