显示已更新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显示它们的编号。然而,我不确定我该怎么做。我将如何循环浏览更新后的结果。
我会使用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));
}
}
}