我想更新一組特定的行C#更新SQL Server表,從表中的select語句返回。該表由一個id和值組成。這些ID不是唯一的,因爲有一列表示修訂。
目前
什麼我希望做的是從C#中更新每個ID的最近修正值。
到目前爲止,我編寫的select語句返回了最新版本的所有id和值。
SELECT id, value
FROM table1 AS T1
WHERE createdOn = (SELECT MAX(createdOn)
FROM table1 AS T2
WHERE T1.id = T2.id)
我在C#中創建了包含id和值的SQL參數。我將使用id來確定哪一行需要插入新值。我當然會使用該值作爲插入該ID的值。
下面是參數:
SqlParameter idParameter = new SqlParameter("@id", SqlDbType.Int);
SqlParameter valueParameter = new SqlParameter("@updatedValue", SqlDbType.NVarChar);
在C#我有用於存儲已經在之前的代碼更新到它們的新值的ID和值的字典。
Dictionary<int, string> updatedValues = new Dictionary<int, string>();
我通過這本字典打算循環,並設置SQL參數,在字典中的當前鍵和值。我目前的代碼如下所示:
foreach (var entry in updatedValues)
{
idParameter.Value = entry.Key;
valueParameter.Value = entry.Value;
//perform sql update command
}
正如註釋所示,我認爲在這裏需要執行SQL更新命令。
關於如何做到這一點以及SQL查詢字符串看起來像確保只有最新版本更新的指導,將不勝感激。
事情我已經試過
我試圖修改我的SQL查詢中使用連接到然後希望更容易修改成一個更新命令,沒有運氣。我也試圖從查詢中插入結果到臨時表中,然後嘗試在臨時表上執行更新。然而,當我嘗試將臨時表放入實際表格時,我遇到了另一個問題。
在此先感謝
附註:我已經爲了嘗試讓別人適應自己的代碼更容易修改變量名稱如果解決方案爲他們工作很順利
我很困惑,固然它不需要很多...您的SQL查詢根據創建的日期獲取最新的ID和值,然後將其加載到字典中並希望遍歷字典以更新最新修訂版本?但是,你是不是隻用最新的最新動態來更新最新的?或者這個更新進入不同的表格? – Leonidas199x
是的,我想遍歷字典來執行更新命令爲每個ID在C#代碼之前更新的值。計算已經在要插入的新值上完成。我已經獲得了數據,並對其進行了修改,現在我正在將這些新數據放回到數據庫中。希望這個清除一點! –