检查更新语句是否成功

use*_*554 1 c# sql verify

我有以下方法将对象设置为特定状态(它将特定行的列值设置为'4':

C#

 void setObjectToFour(int objectID)
        {
            using (var conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Database"].ConnectionString))
            using (var command = new SqlCommand("setObjectToFour", conn)
            {
                CommandType = CommandType.StoredProcedure
            })
            {
                command.Parameters.Add(new SqlParameter("@objectID", SqlDbType.Int)).Value = objectID;
                conn.Open();
                command.ExecuteNonQuery();

            }
        }
Run Code Online (Sandbox Code Playgroud)

SQL:

...
AS
BEGIN
    Update [DB_OBJECT].[dbo].[object_table]
    SET status = 4
    WHERE id = @objectID

END
Run Code Online (Sandbox Code Playgroud)

问题是DB_OBJECT DB不是由我们管理的,而是一个软件的DB.

接下来的问题是上面的查询并不总是有效(而且我们还没弄清楚原因)我正在考虑如果行更新,我们可以"强制"或"检查".

按照以下方式做到这一点是否明智?:

1 - 创建检索对象状态的新C#方法Check和存储过程getStatus

2 - 我将把上面的两种方法都放在a中,do while直到状态为4.

这是一个聪明的方法吗?

Joh*_*Woo 7

ExecuteNonQuery()方法返回受影响的行数.

int recordAffectd = command.ExecuteNonQuery();
if (recordAffectd > 0)
{
    // do something here  
}
Run Code Online (Sandbox Code Playgroud)