2016-10-22 15 views
0

挿入または更新されたデータグリッドビューで直ちにデータを表示する方法。私は、挿入または更新後に更新されたDataGridviewを表示する方法

private void UpdateDebtbutton_Click(object sender, EventArgs e) { SqlConnection conn = ForConnection(); conn.Open(); using (conn) { if (paytextBox.Text != "") { SqlCommand cmd = new SqlCommand("spdebth", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@id", SqlDbType.Int).Value =customerIDTextBox.Text.ToString(); cmd.Parameters.Add("@text", SqlDbType.Int).Value = paytextBox.Text.ToString(); cmd.ExecuteNonQuery(); MessageBox.Show("Record updated"); spSelectAllCustomerDataGridView.Update(); spSelectAllCustomerDataGridView.Refresh(); conn.Close(); } } }

+0

データソースを再度設定します。 – Berkay

+0

@Berkay DatatGridViewのDataTableを使用して –

+0

を使用していただきありがとうございます。あなたはdataTable.AcceptChanges()を試しましたか? – JohnG

答えて

0

RefreshUpdateメソッドは、データをリフレッシュするために使用されていない私のために働い)(Data.Iがアップデートを使用したことリフレッシュ()でもないを表示するには、プロジェクトを開始し直す必要があり再塗装WinFormsコントロール。

はDataGridViewの中で更新されたデータ表示のいくつかの方法があります。データソースとして使用BindingList

  1. を、これはDataSource
  2. 手動
  3. 再バインドDataGridViewINotifyPropertyChanged
  4. 更新行を実装するオブジェクトが必要です

以下は3点目の例です。

private void UpdateDebt(int customerId, int debt) 
{ 
    var debts = (List<Debt>)spSelectAllCustomerDataGridView.DataSource; 
    var item = debts.First(x => x.Id == customerId); 
    item.Debt = debt; 

    spSelectAllCustomerDataGridView.DataSource = null; 
    spSelectAllCustomerDataGridView.DataSource = debts; 
} 

変更を表示するには、DataGridViewを再バインドする必要があります。

関連する問題