1

これがセットアップです

  • 私はDetailsViewそのDataSourceを持っていObjectDataSourceます。
  • ObjectDataSourceには、selectとupdateの2つのメソッドがあり、これらはで定義されたストアドプロシージャTableAdapterです。
  • ストアドプロシージャは1つのパラメータ(SelectレコードID)を取り、に入力されたフィールドを返しますDetailsView
  • Updateストアドプロシージャは、レコードIDと2つのデータフィールドの3つのパラメータを取ります。

選択プロセスは正常に機能します。

ただし、更新を送信すると、次のエラーが発生します。

ObjectDataSourceパラメータを持つ非ジェネリックメソッドが見つかりませんでしたUpdate:[21のテーブル列すべて]

(3)必要なフィールドのみをUpdateストアドプロシージャに渡そうとしていますが、DetailsViewはから受け取ったすべてのフィールドを使用して更新しようとしているようSelectです。

NewValuesからコレクションにアクセスできることは知っていますが、ストアドプロシージャ、、、およびの定義と一致するようにパラメータを削除DetailsViewUpdateEventArgsする方法がわかりません。TableAdapterObjectDataSource

何か案は?

4

2 に答える 2

0

NewValuesのコレクションから不要な値を削除するだけで、今のところ問題を回避できましたDetailsViewUpdateEventArgs。ただし、これは最適ではありません。ストアド プロシージャまたはフォームに変更があった場合に別の障害点が追加されたためです。

a を a ができるようTemplateFieldに設定できるかどうかを知りたいです(Aaronの回答の下のコメントを参照)。ReadOnlyBoundField

于 2010-02-23T20:23:01.480 に答える
0

おそらく、このチュートリアルはいくつかの洞察を提供することができます. データソースで更新メソッドと更新パラメーターを指定する限り、これは正常に機能するはずです。

于 2010-02-23T16:33:14.070 に答える