首页 > 解决方案 > 我的更新运行计算,但将相同的值更新到所有行

问题描述

当我运行以下函数时,它会循环并将新值写入数据库,但值都是相同的。我有一个类似的问题,但我以不同的方式实现它 - 这是不使用数组的不同方式。

cmd = con.CreateCommand();
string end = @"SELECT balance, accrued FROM account ";
string update = @"UPDATE account SET balance = @balance WHERE account.prodid = product.prodid";
con.Open();
cmd = new SQLiteCommand(end, con);
reader = cmd.ExecuteReader();
while (reader.Read())
{
    double balance = double.Parse(reader[0].ToString());
    double accrued = double.Parse(reader[1].ToString());
    balance = balance *accrued;
    cmd = new SQLiteCommand(update, con);        
    cmd.Parameters.AddWithValue("balance", balance);
    cmd.ExecuteNonQuery();       
}

标签: c#sql

解决方案


您可以直接使用 SQL 来计算您的列余额,如下所示。

UPDATE account SET balance = balance * accrued 

此致 。


推荐阅读