Вычисляемые столбцы SqlCommandBuilder и SQL Server - ошибка - PullRequest
0 голосов
/ 04 июня 2009

Как правильно избежать ошибок в INSERT и UPDATES с помощью SqlDataAdapter / SqlCommandbuilder, если в операторе SQL, используемом для SELECT, вычисляемый столбец является одним из полей возврата?

Теперь я получаю сообщение об ошибке: «Столбец Сумма не может быть изменен, поскольку он является вычисляемым столбцом или результатом оператора UNION».

UPDATE : Я исправил проблему с помощью запроса, подобного этому:

SELECT *, PercentRating * 500 AS CoreValue FROM ValueListings

И исключение вычисляемого столбца. Теперь это работает. Как этот SqlCommandBuilder реализует НЕ для построения поля CoreValue в операторах UPDATE и INSERT? Кто-нибудь знает, как это работает внутри?

Ответы [ 2 ]

1 голос
/ 29 июня 2010

Используйте предложение:

SELECT * FROM ValueListings

Затем, после заполнения таблицы данных, добавьте в нее вычисляемый столбец:

  Dim Dt as new DataTable
  Da.Fill(Dt)
  Dt.columns.add("CoreValue", GetType(Double), "PercentRating * 500")
0 голосов
/ 29 июня 2010

Если вы можете избежать использования *, это избавит вас от неприятностей позже. С *, если вы измените схему, ваш код может сломаться. Если названы поля, у вас все хорошо.

...