捕获零行更新

本文关键字:零行 更新 | 更新日期: 2023-09-27 17:50:15

我有以下代码,用于清除我们使用的应用程序的帐户注销标志。

try
{
    string connectionString = "Data Source=DBSERVER;Initial Catalog=AbraEmployeeSelfService;Integrated Security=False;user=FOO;pwd=BAR";
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        using (SqlCommand command = new SqlCommand("UPDATE dbo.tUSERS SET UserUnsuccessfulLoginCount = 0, UserLockoutInd = 0 WHERE LEFT(UserAbraSuiteLogicalPrimaryKey, 4) = '" + BadgeNumber + "'", connection))
        {
            command.ExecuteNonQuery();
            connection.Close();
        }
    }
}
catch (SqlException ex)
{
    MessageBox.Show(ex.Message);
}

当零行返回时,我怎么能得到这个捕获?

捕获零行更新

ExecuteNonQuery将返回受影响的行数。使用它。:)

int nbUpdatedRows;
(...)
nbUpdatedRows = command.ExecuteNonQuery();
(...)
if (nbUpdatedRows == 0) // do stuff

ExecuteNonQuery()方法返回执行命令后影响的行总数。

From MSDN: ExecuteNonQuery()

对连接执行Transact-SQL语句并返回受影响的行数。

你可以检查它的返回值与零比较。

试试这个:

int status = command.ExecuteNonQuery();
if(status==0)
  MessageBox.Show("No Rows Updated!");