当用于SELECT的SQL语句将计算列作为返回字段之一时,使用SqlDataAdapter / SqlCommandbuilder避免INSERT和UPDATES错误的正确方法是什么?
我现在收到错误“无法修改列 Amount ,因为它是计算列或者是UNION运算符的结果”。
更新: 我通过使用这样的查询解决了这个问题:
SELECT *, PercentRating * 500 AS CoreValue FROM ValueListings
抛弃计算列。 现在它有效。 SqlCommandBuilder如何实现 NOT 将CoreValue字段构建到UPDATE和INSERT语句中?有谁知道这是如何在内部工作的?
答案 0 :(得分:1)
使用句子:
SELECT * FROM ValueListings
然后填充DataTable后,向其中添加一个Computed Column:
Dim Dt as new DataTable
Da.Fill(Dt)
Dt.columns.add("CoreValue", GetType(Double), "PercentRating * 500")
答案 1 :(得分:0)
如果您可以避免使用*它将在以后节省您的麻烦。使用*如果您更改架构,您的代码可能会中断。如果命名字段,那你很好。