0

SELECT に使用される SQL ステートメントに戻りフィールドの 1 つとして計算列がある場合、SqlDataAdapter/SqlCommandbuilder を使用した INSERT および UPDATES のエラーを回避する正しい方法は何ですか?

「計算列であるか、UNION 演算子の結果であるため、列Amountを変更できません」というエラーが表示されます。

UPDATE :次のようなクエリを使用して問題を修正しました。

SELECT *, PercentRating * 500 AS CoreValue FROM ValueListings

そして、計算された列を捨てます。今では動作します。SqlCommandBuilder は、CoreValue フィールドを UPDATE および INSERT ステートメントに組み込まないことをどのように認識していますか? これが内部でどのように機能するか知っている人はいますか?

4

2 に答える 2

1

文を使用します。

SELECT * FROM バリューリスト

次に、DataTable に入力した後、計算列を追加します。

  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 に答える