2012-02-22 16 views
2

私は、テーブルにバインドされたdataGridViewを持っています。 DataGridViewと同じフォーム上には、いくつかのテキストボックスと、データベースに新しい値を追加するボタンがあり、それらをgridViewにも表示する必要があります。データベースに保存すると、新しい値がgridViewに表示されません。私は以下を試しました:Refresh DataGridView

this.Validate(); 
this.pBindingSource.EndEdit(); 
this.pTableAdapter.Update(this.DBDataSet); 
pDataGridView.Refresh(); 

これは機能しませんでした。私の理解から、.RefreshメソッドはGridViewを再描画するだけなので、tableAdapterを更新した後に動作するはずです。しかし、それはしません。

は、次に私が試してみた:

this.pDataGridView.DataSource = null; 
this.pDataGridView.DataSource = this.pBindingSource; 
pDataGridView.Refresh(); 

も動作しません。次に、動作しなかったバインディングソースのResetBindings()を試してから、アイデアがなくなりました。

DataGridViewを更新するにはどうすればよいですか?

+0

私はあなたが使用する必要があると思う:this.pBindingSource.DataSource –

+0

それは動作しませんでした。 imput thoをありがとう –

+0

最初の質問:SilveightまたはWPF? 2番目:データ収集に使用するタイプ - pBindingSource? – Meonester

答えて

1

あなたはまた、この使用することができます

this.pDataGridView.DataSource = null; 
this.pDataGridView.DataBind(); 
this.pDataGridView.DataSource = this.pBindingSource; 
pDataGridView.DataBind(); 
+0

pDataGridViewの.DataBind()メソッドはありません。私はVisual Studio 2010のbtw –

+3

@orzacsergiuを使っています。あなたは知っているだけです.VSのバージョンは、C#の機能とはまったく関係ありません。私はあなたのバージョンの.Netフレームワークを述べるべきだと思います。 – gunr2171

0

のように変更することができます。すべてのボタンコマンドに

this.[tablename]tableAdapter.Fill(this.[Database]DataSet.[tablename]); 

を、それは、少なくとも私のために働きました。

例えば私のコードは次のようになります。

this.studentinfoTableAdapter.Fill(this.studentDataSet.studentinfo);