如何只更新c#.net数据库中同名的最高id

How to update only the highest id of the same Name in c#.net database

我的 FullSummary 数据库有这个 Table 数据:

我只想更新 selected 名称的最高 ID 的“名称、价格和总计”。

如果我select“随机”,则 ID 为 52 的“随机”应该是唯一具有更新数据的。

我试过了:

con.Open();                       
cmd.CommandText = "UPDATE FullSummary SET Name='" + addRiceTextBox.Text + "', Price='" + addPriceTextBox.Text + "', Total='" + newTotalEdit.Text + "' WHERE(Id, Name) IN(SELECT MAX(Id), Name FROM FullSummary GROUP BY Name)";
cmd.ExecuteNonQuery();
con.Close();

但是它给了我这个错误:

我在这里找到了代码:select only rowwith highest id value if there are identical column values

而这个:How can I select the row with the highest ID in MySQL? 只有 select 一个项目,不会更新它。

SQL 服务器不支持元组比较。所以这个

 WHERE(Id, Name) IN (SELECT MAX(Id), Name FROM FullSummary ...)

行不通。所以你应该使用这样的标量子查询(带参数):

UPDATE FullSummary f
SET Price=@price, Total=@total 
WHERE Id = (select max(ID) from FullSummary where name = @name)