C# 数据库中受影响的行数不正确

C# 数据库中受影响的行数不正确,c#,mysql,sql,C#,Mysql,Sql,我的应用程序中有以下代码,用于更新数据库 MySqlConnection summaryConn = new MySqlConnection(summaryConStr); MySqlCommand summaryCmd = new MySqlCommand(); summaryCmd.Connection = summaryConn; int effectedRows = 0; try { summaryConn.Open(); foreach (string query

我的应用程序中有以下代码,用于更新数据库

MySqlConnection summaryConn = new MySqlConnection(summaryConStr);
MySqlCommand summaryCmd = new MySqlCommand();
summaryCmd.Connection = summaryConn;

int effectedRows = 0;
try
{
    summaryConn.Open();

    foreach (string query in queries)
    {
        try
        {
            if (query.Length == 0)
                continue;
            if (summaryConn.State != ConnectionState.Open)
                summaryConn.Open();

            summaryCmd.CommandText = query;

            int tempRowCount = -1;

            tempRowCount = summaryCmd.ExecuteNonQuery();

            effectedRows = tempRowCount > -1 ? effectedRows + tempRowCount : effectedRows;
        }
        catch (Exception ex)
        {
            logExeption(ex);
        }
    }
}
catch(Exception exc)
{
    logException(exc)
}
以下是上述代码的日志:

书面分析:开始日期:2014-01-16 22:48:17。
2410.9814453秒内分析中更新/插入/删除6778634行。
插入:0,更新:905,删除:0。WritingInAnalytics于:2014-01-16 23:28:28完成。

供参考,目标表已编制索引,插入的行根据唯一索引按8列分组,更新和删除行使用自动增量主键。
这里我的问题是,由于要更新的行总数为905,因此无需插入和删除。那为什么受影响的行是6778634?然而,这种行为很少见,但对我来说很痛苦。
有人能告诉我我缺少了什么吗?
谢谢。

如果执行这些查询花费了这么多时间,为什么不使用存储过程并向其发送查询列表?如何记录更新/插入/删除记录的计数?你能显示相关的代码吗?@Damith:通过在datatable上循环计算,每一行都有一个标志,指示该行是插入、更新还是删除。我已经对它进行了调试,并验证了它是否正常工作。