出於性能原因,我試圖使用實體框架ExecuteSqlCommand批量更新數據。 ctx.Database.ExecuteSqlCommand(updateQuery, new object[] {newValue});
實體框架ExecuteSqlCommand批量更新
但是我無法設置我的表的值字段。它應該由一個因素乘以現有的價值,但我收到以下錯誤:
Additional information: Error converting data type nvarchar to numeric.
newValue = "Value * 56,25";
String updateQuery = @"UPDATE dbo.BudgetLine_type1_unpivoted set Value = {0} where valueTypeID='Value2' AND Dim2 in ('712','718','722') AND Dim4 = '110' AND Period = 1"
int noRowsAffected = db.Database.ExecuteSqlCommand(updateQuery, new object[] {newValue});
當設置NEWVALUE爲「1」或簡單的「價值」(不改變任何東西),它工作正常
我應該怎麼做乘法?值域是十進制類型(28,6)
有時它會是價值=價值*因素和其他時間它會簡單地價值= X所以你的例子不會在這種情況下工作恐怕。我嘗試用@ p0代替{0},但仍然沒有運氣 – JohanLarsson 2014-10-07 09:05:34
好的,已經更新了回答,以考慮到這一點 – Rhumborl 2014-10-07 09:27:52
非常感謝,這沒有辦法。我認爲我的問題是我試圖運行更新時,將「Value * 56.25」存儲爲字符串而不是小數。乾杯! :) – JohanLarsson 2014-10-07 09:54:30