Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.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# 如何获取更新记录数的计数(*)_C#_.net_Sql_Sql Server 2008 - Fatal编程技术网

C# 如何获取更新记录数的计数(*)

C# 如何获取更新记录数的计数(*),c#,.net,sql,sql-server-2008,C#,.net,Sql,Sql Server 2008,我正在使用c#更新sql server 2008数据库,如下所示: foreach (DataRow row in dt.Rows) { faxstatus = row.ItemArray[5].ToString().Contains("0000") ? "Faxed" : "Error"; query = @"update FileLog set FaxStatus=" + "'" + faxstatus + "'," + "

我正在使用c#更新sql server 2008数据库,如下所示:

foreach (DataRow row in dt.Rows)
{
    faxstatus = row.ItemArray[5].ToString().Contains("0000") ? "Faxed" : "Error";

    query = 
        @"update FileLog set
        FaxStatus=" + "'" + faxstatus + "'," +
        "FaxedPageCount=" + "'" + row.ItemArray[1] + "'," +
        "dtFaxed=" + "'" + row.ItemArray[2] + "'," +
        "BiscomCode=" + "'" + row.ItemArray[5] + "', " +
        "RetryCount=" + "'" + row.ItemArray[4] + "' " +
        "where CONVERT(VARCHAR(255), JobID) =" + "'" + row.ItemArray[3] + "'" +
        " and FaxStatus<>'Faxed'";

    command = new SqlCommand(query, myConnection);
    command.ExecuteNonQuery();
    NumberOfRecordsUpdated++;

}
foreach(数据行中的数据行)
{
faxstatus=row.ItemArray[5].ToString()包含(“0000”)?“传真”:“错误”;
查询=
@“更新文件日志集
FaxStatus=“+””“+FaxStatus+”,”+
“FaxedPageCount=“+””+行.项目数组[1]+”,”+
“dtFaxed=“+””+行.项目数组[2]+”,”+
“BiscomCode=“+””+行.项目数组[5]+”,”+
“RetryCount=“+””+行.项目数组[4]+””+
其中CONVERT(VARCHAR(255),JobID)=“+”“+行.项目数组[3]+””+
“和传真状态‘传真’”;
command=newsqlcommand(查询,myConnection);
command.ExecuteNonQuery();
NumberOfRecordsUpdated++;
}

我想知道是否可以返回更新了多少记录?

是。使用
ExecuteNonQuery
的返回值::-)

引述:

对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数


对。使用
ExecuteNonQuery
的返回值::-)

引述:

对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数


捕获并使用
ExecuteNonQuery
的结果作为整数。该方法返回受操作影响的记录数


也就是说,您对数据源的信任程度如何?足以打赌你的数据完整性了吗?如果我不恳求你去探索参数化查询,我会很抱歉的。使用语句的
也将得到保证,以便正确处理您的可支配资源(
SqlConnection
SqlCommand
等)。

捕获并使用
ExecuteNonQuery
的结果,使其成为整数。该方法返回受操作影响的记录数

也就是说,您对数据源的信任程度如何?足以打赌你的数据完整性了吗?如果我不恳求你去探索参数化查询,我会很抱歉的。
使用
声明也将得到保证,以便正确处理您的可支配资源(
SqlConnection
SqlCommand
等)。

您可以使用。

您可以使用。

参考:

返回值
类型:System.Int32
受影响的行数

提及:

返回值
类型:System.Int32
受影响的行数


SELECT@@@ROWCOUNT
附加到语句中,并使用
ExecuteScalar
而不是
executenequery

SELECT@@@ROWCOUNT
附加到语句中,并使用
ExecuteScalar
而不是
executenequery

此代码泄漏,您需要
Dispose
使用
SqlCommand
或(更好)使用
stamtent将其包装在
中。我不得不说,这是一种非常肮脏的数据库更新方式。我真的希望您的数据中没有任何“'”字符!您至少应该使用参数。@Joel:参数化语句永远!此代码泄漏,您需要
Dispose
使用
SqlCommand
或(更好)使用
stamtent将其包装在
中。我必须说,这是一种非常肮脏的数据库更新方式。我真的希望您的数据中没有任何“'”字符!您至少应该使用参数。@Joel:参数化语句永远!