繁体   English   中英

如何获得更新记录数的计数(*)

[英]how to get a count(*) for number of records updated

我正在使用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++;

}

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

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

引用ExecuteNonQuery的文档

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

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

请参见SqlCommand.ExecuteNonQuery方法

话虽这么说,您对数据源有多信任? 足以赌您的数据完整性吗? 如果我不恳求您探索参数化查询,我将被撤职。 还可以using语句,以便正确处理您的可弃资源( SqlConnectionSqlCommand等)。

引用SqlCommand.ExecuteNonQuery方法

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

SELECT @@ROWCOUNT附加到您的语句,并使用ExecuteScalar而不是ExecuteNoneQuery

您可以使用@@ ROWCOUNT

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM