0

こんにちは、私は多くのサイトを調べてきましたが、答えが見つからないようです。

C# Winforms アプリの tableadapter を介して接続された Datagridview に接続されたビューを変更しました。「再接続」するには、tableadapter を削除して再接続する必要がありました。これは、Unique 制約に関するエラーを取り除くためのものでした。だから私はそれを修正し、アプリケーションが起動するようになりましたが、そのグリッドがオンになっているタブをクリックすると、次のようになります。

System.ArgumentException was unhandled
  Message="Cannot bind to the property or column Id on the DataSource.\r\nParameter name: dataMember"
  Source="System.Windows.Forms"
  ParamName="dataMember"
  StackTrace:
       at System.Windows.Forms.BindToObject.CheckBinding()
       at System.Windows.Forms.BindToObject.SetBindingManagerBase(BindingManagerBase lManager).........

この問題に対する答えが見つからないようです。誰かが私を助けることができますか?

ありがとう

4

3 に答える 3

0

まず、この投稿のタイトルから、application.Runでこの例外が発生していることに気付きました。これは、おそらくコールスタックのはるか上にスローされたことを意味します。メニューの[デバッグ]->[例外]に移動し、スローされたときに[例外で中断]に設定できますか。これは、これが発生しているときに正確に分離するのに役立ちます。バインド情報の設定があり、グリッドがバインドしようとしているプロパティの1つを修正したようです。

于 2010-06-17T20:56:42.090 に答える
0

私は自分の解決策が好きではありませんが、問題を解決しました。TableAdapter を再度削除し、今回は名前を変更しました。次に、元の名前のすべてのインスタンスの名前を変更しました(アダプターを削除して再作成したにもかかわらず、192個すべてが残っていました!すべてのインスタンスの名前を変更し、ビュー名を使用したため、クエリを修正する必要がありましたデフォルトのTableAdapter名として.これが誰かに役立つことを願っています.

于 2010-06-18T18:13:12.977 に答える
0

グリッドまたはビュー内でスキーマを変更し、存在しないフィールドを参照すると、次のようになります。

System.ArgumentException : DataSource.Parameter 名のプロパティまたは列 ID にバインドできません: dataMember

欠落している列名は、列という単語の後にリストされています。「ID」列がありませんでした。プロパティまたは列IDにバインドできないと思いました。エラーを読みました。列 ALBUM にバインドできないという同じ問題を抱えている他の誰かから解決されました。

エラーが Application.Run ではなく Grid 構築コードに近い場所から発生した場合、私はそれを見たかもしれません。グリッド/テキスト ボックスの ID フィールドへのバインディングでエラーが発生したとしても、ID フィールドで何かをしようとしているのを見て、そこにないことがわかったでしょう。おいおい:-)

于 2010-06-22T13:48:28.237 に答える