2017-05-17 6 views
0

こんにちは私はC#を初めて使用しています。FormのコンポーネントとAccept_btnというボタンからデータを取得するDataGridViewのフォームがあります。私はDataGridViewの変更でテーブルを更新しようとしています。私はフォームのLoadイベントの例から得た以下のコードを使用しました。DataGridViewの変更でテーブルを更新する

connection.Open(); 
string query = "SELECT * FROM Cables"; 
OleDbDataAdapter da = new OleDbDataAdapter(query, connection); 
OleDbCommandBuilder cBuilder = new OleDbCommandBuilder(da); 
DataTable dt = new DataTable(); 

da.Fill(dt); 

BindingSource bSource = new BindingSource(); 
bSource.DataSource = dt; 

dtGrdVw.DataSource = bSource; 

とボタンのクリックイベントに私はコード

da.update(dt); 

を持っている私の問題は、ボタンのクリックイベントがDataAdapterを認識しないか、DataTable

+1

'da'と' dt'のコンテキストに基づいて、それらはメソッドで作成されるため、そのスコープの外側には存在しません。初期化(おそらく)メソッドではなく、クラス内のオブジェクトを宣言すると、クラス内のすべてのオブジェクトにアクセスできます –

+0

dtGrdVw.DataSource = nullを実行するまで、datagridviewは更新されません。コントロールのペイント方法が自動的に更新されることはありません。だからこそ、DGV Sourceをnullに設定し、次にデータテーブルに戻すことです。 – jdweng

答えて

0

みんなありがとうはそれが仕事だということですDatatableをクラスに入れ、ボタンメソッドで新しいDatatableを作成するだけでなく、Datagridviewソースをnullにしてから、新しいDataTableにソースを設定することで、提案を行います。 私は自宅にインターネットがないので、遅く返事を申し訳ありません。

関連する問題