0

当用于 SELECT 的 SQL 语句将计算列作为返回字段之一时,使用 SqlDataAdapter/SqlCommandbuilder 避免 INSERT 和 UPDATES 错误的正确方法是什么?

我现在收到错误消息“无法修改列金额,因为它是计算列或者是 UNION 运算符的结果”。

更新:我通过使用这样的查询解决了这个问题:

SELECT *, PercentRating * 500 AS CoreValue FROM ValueListings

并放弃计算列。现在它起作用了。SqlCommandBuilder 如何实现将 CoreValue 字段构建到 UPDATE 和 INSERT 语句中?有人知道这在内部是如何工作的吗?

4

2 回答 2

1

使用句子:

从值列表中选择 *

然后在填充数据表后,向其中添加一个计算列:

  Dim Dt as new DataTable
  Da.Fill(Dt)
  Dt.columns.add("CoreValue", GetType(Double), "PercentRating * 500")
于 2010-06-29T16:24:49.293 回答
0

如果您可以避免使用 * 它将为您省去以后的麻烦。使用 * 如果您更改架构,您的代码可能会中断。如果命名字段,你很好。

于 2010-06-28T21:18:03.977 回答