Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查update语句是否成功_C#_Sql_Verify - Fatal编程技术网

C# 检查update语句是否成功

C# 检查update语句是否成功,c#,sql,verify,C#,Sql,Verify,我使用以下方法将对象设置为特定状态(它将特定行的列值设置为“4”): C# SQL: 问题是DB_对象DB不是由我们管理的,而是一个软件的DB 接下来的问题是,上面的查询并不总是有效的(我们还没有弄清楚原因),我在考虑如何“强制”或“检查”行是否已更新 按以下方式做是否明智 1-创建新的C#方法Check和存储过程getStatus,用于检索对象的状态 2-我将把上述两种方法放在do中,直到状态为4 这是一种聪明的方法吗?方法返回受影响的行数 int recordAffectd = comman

我使用以下方法将对象设置为特定状态(它将特定行的列值设置为“4”):

C#

SQL:

问题是DB_对象DB不是由我们管理的,而是一个软件的DB

接下来的问题是,上面的查询并不总是有效的(我们还没有弄清楚原因),我在考虑如何“强制”或“检查”行是否已更新

按以下方式做是否明智

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

2-我将把上述两种方法放在
do中,直到状态为4

这是一种聪明的方法吗?

方法返回受影响的行数

int recordAffectd = command.ExecuteNonQuery();
if (recordAffectd > 0)
{
    // do something here  
}
ExecuteNonQuery()根本不返回数据:只返回受插入、更新或删除影响的行数

试试这个

if (command.ExecuteNonQuery() !=  0)
{
    // more code 
}

“command.ExecuteNonQuery();”已经给出了答案。只需检查它是否为0,它是否为0,然后就没有任何内容被更新或更改。ExecuteNonQuery将返回受影响的行数。这意味着我可以在方法内调用相同的方法?如
int rowsAffected=command.ExecuteNonQuery();如果(rowsAffected==0){setObjectToFour(objectID)}
这意味着我可以在我的方法中调用相同的方法?比如
int rowsAffected=command.ExecuteNonQuery();if(rowsAffected==0){setObjectToFour(objectID)}
@user3127554。完全正确。@user3127554但请确保不要无条件执行此操作。如果它将连续多次返回0,则可能会出现stackoverflow异常,这将使整个过程崩溃。
int recordAffectd = command.ExecuteNonQuery();
if (recordAffectd > 0)
{
    // do something here  
}
if (command.ExecuteNonQuery() !=  0)
{
    // more code 
}