2009-06-04 63 views
0

當用於SELECT的SQL語句的計算列作爲返回字段之一時,避免使用SqlDataAdapter/SqlCommandbuilder執行INSERT和UPDATES錯誤的正確方法是什麼?SqlCommandBuilder和SQL Server計算列 - 錯誤

我現在得到錯誤「數量無法修改,因爲它是計算列或UNION運算符的結果」。

UPDATE: 我用這樣的查詢固定的問題:

SELECT *, PercentRating * 500 AS CoreValue FROM ValueListings 

而且開溝計算列。 現在,它的工作。 SqlCommandBuilder是如何實現的到不是將CoreValue字段構建到UPDATE和INSERT語句中?有人知道這是如何在內部工作?

+0

與修復好消息,羞辱你使用可怕的選擇星標! – 2009-06-22 19:40:55

回答

0

如果您可以避免使用*,它可以在以後節省您的麻煩。使用*如果您更改架構,您的代碼可能會中斷。如果命名字段,你很好。

1

用句子:

SELECT * FROM ValueListings

然後填寫DataTable之後,添加計算的列到它:

Dim Dt as new DataTable 
    Da.Fill(Dt) 
    Dt.columns.add("CoreValue", GetType(Double), "PercentRating * 500")