2016-04-07 11 views
0

ボタンPonudaをクリックすると、DataGridで選択した行を更新する必要があります。ボタンをクリックして選択した行をデータベースに更新する

enter image description here

問題は、私はボタンをクリックすると、何も起こりませんが、私は、アプリケーションを再起動すると、リスト全体が更新される、です。だから、私は選択した行だけを更新し、アプリケーションを再起動してすぐに更新する方法が必要です。あなたはバインディングを使用している場合、それが更新されるべきである(SHOULD)

private void button3_Click(object sender, RoutedEventArgs e) 
     { 
      // count = 120; 
      // tmr.Start(); 

      using (SqlConnection conn = new SqlConnection(@"data source=ZC-PC\SQLEXPRESS;database=Aukcija;integrated security=true;")) 
      { 
        DataTable cena1 = new DataTable(); 
        conn.Open(); 
        SqlDataAdapter DA = new SqlDataAdapter(" UPDATE Predmet SET trenutnaCena = trenutnaCena + 1", conn); 
        SqlCommand cmd = new SqlCommand("UPDATE Predmet SET trenutnaCena = trenutnaCena + 1", conn); 
        cmd.ExecuteNonQuery(); 
        DA.Update(cena1); 
        conn.Close(); 

      } 

     } 
+0

データグリッド内のデータを変更することはありませんので、それ自体を更新する必要はありません。 –

+0

'aukcija_bazeDataGrid.DataContext = aukcijeTable;'を追加しようとしました。Da.Update(cena1 );でも、それでも同じです。 'aukcija_bazeDataGrid'は私の' DataGrid'の名前です。 –

+0

私が知る限り、データソースを更新するたびにデータソースのバインドを解除して再バインドする必要があります。 –

答えて

0

これは、ボタンのクリックのための私のコードです。その理由は、DataGrid(ObservableCollectionまたはクラスに基づくクラス)にバインドするオブジェクトがINotifyPropertyChangedを実装していない場合、そのコレクションはプロパティの変更が発生したことを決して知らないためです。

まだインストールしていない場合は、INotifyPropertyChangedを実装し、各プロパティのOnPropertyChangedイベントを発生させます。値が変更されると、DataGridとバインドされている実際のコレクションの両方に反映されます。

あなたは、そのようなときにいつでも新しいコレクション値でデータベースを更新するイベントがあることを確認したいと思います(私はbutton3_Clickが注意していることに気付きました)。

これがうまくいかない場合は、私に教えてください。

+0

本当に遅れてごめんなさい、私のコードでPropertyChangedイベントの例を教えてもらえますか? –

関連する問題