質問: DataGridViewの再表示方法について
回答: 普通にバインドしていれば、DataGridView の表示は DataSet の内容に合わせて自動的に更新されます。また、更新する際、DataSet を内容を変更して、TableAdapter(または DbDataAdapter)の Update を呼び出すという順序になると思いますので、更新した後に DataGridView の表示を更新する必要は、普通はないと思います。 ちょっと質問の意図が伝わっていないかも知れません。更新後に DataGridView がどんな状態になっていて、どんな状態に更新したいのか、もう少し詳しく補足できませんか? なお、更新後にデータベースから最新のデータを取得したいという意味なら、お使いの TableAdapter なり DbDataAdapter の Fill を呼び出せばよいです。 それ以外の意味なら補足をお願いします。 ※追記 質問の経緯は理解しました。 結論を言うと、ExecuteNonQuery を使って削除するのが、誤りで、これは本来の方法ではありません。 DataSet を用いる場合は、削除も DataSet 経由で行うのが一般的ですし、DataSet というのはそういう風に設計されています。今回のような状態にしてしまうと、正常な状態に戻すには今の DataSet の内容を全て破棄して、再度データベースから取得するくらいしかないと思います。(Fill メソッド) ということで削除の方法を変更すればよいです。DataSet の中の DataTable の該当行を Delete メソッドで削除済みとしてマークして、最後に Update メソッドを実行すれば良いです。 DataGridView の行に対して逆順にループして、その行の削除のチェックが入っていたら DataGridViewRow.DataBoundItem を DataRowView にキャストして、その Delete メソッドを呼び出します。これでチェックされた行が削除済みとしてマークされます。(逆順にループするのはループ中に行が削除されるため) その後、お使いの TableAdapter なり DbDataAdapter の Update メソッドを呼び出します。これで更新できます。ちなみに TableAdapter なり DbDataAdapter の DeleteCommand が設定されている必要があります。