显示已更新C#的记录

本文关键字:记录 已更新 显示 | 更新日期: 2023-09-27 18:26:05

我有一个简单的update语句,用于更新某个Location所在的位置。我目前正在制作一个小型桌面应用程序,当我按下按钮时,它会更新,然后显示更新的记录。如何返回已更新记录的ID,然后在C#中显示这些记录。

 SqlCommand cmd = new SqlCommand(" update conset set location='LA' where deal in (select deal from dealset where location='LA') and locationid = 'NY'", con);
                int rowsAffected = cmd.ExecuteNonQuery();

然而,这只是告诉我更新的记录数,而不是更新了哪些id,所以我可以查询以显示它们。帮助

例如,如果用ID更新了3条记录:1102、1105、111

然后,它应该根据Id显示它们的编号。然而,我不确定我该怎么做。我将如何循环浏览更新后的结果。

显示已更新C#的记录

我会使用OUTPUT子句并循环DataReader:

string sql = @"
UPDATE c 
SET    c.location = 'LA' 
OUTPUT INSERTED.IdColumn
FROM conset c
WHERE  deal IN (SELECT deal 
                FROM   dealset 
                WHERE  location = 'LA') 
AND c.locationid = 'NY';";
List<int> updatedIDs = new List<int>();
using (var con = new SqlConnection(Properties.Settings.Default.ConnectionString))
using (var cmd = new SqlCommand(sql, con))
{
    con.Open();
    using (var rd = cmd.ExecuteReader())
    {
        while (rd.Read())
        {
            updatedIDs.Add(rd.GetInt32(0));
        }
    }
}