我有以下方法将对象设置为特定状态(它将特定行的列值设置为'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.
这是一个聪明的方法吗?
ExecuteNonQuery()方法返回受影响的行数.
int recordAffectd = command.ExecuteNonQuery();
if (recordAffectd > 0)
{
// do something here
}
Run Code Online (Sandbox Code Playgroud)