2016-05-08 6 views
-1

現在、毎秒実行するSQLクエリと、データテーブルを更新しています。新しいデータでデータセットを更新する

私が望むのは、新しい値で変更する代わりにデータを更新することです。古い値に新しい値を追加したい。私はここでは、まさにこの

enter image description here

ようにしたい

は私がデータテーブルからデータを取得するために使用していますものです。

public void getTopSQL() 
{ 
    ultraGrid1.DataSource = dt_TopSQLTableAdapter1.GetData(); 
} 

この部分の後、私は何をすべきか、何を使用すべきかを知りません。

答えて

0
public void getTopSQL() 
{ 
    DataTable currentData = (DataTable)ultraGrid1.DataSource; 
    DataTable newData = dt_TopSQLTableAdapter1.GetData(); 

    foreach (DataRow row in newData.Rows) 
    { 
      string id = row["ID"].ToString(); 
      DataRow[] matchedRows = currentData.Select(string.Format("ID='{0}'", id), "ID asc"); 
      if (matchedRows.Length > 0) 
      { 
       DataRow matchedRow = matchedRows[0]; 
       matchedRow["Value"] = int.Parse(row["Value"].ToString()) + int.Parse(matchedRow["Value"].ToString()); 
      } 
      else 
      { 
       DataRow newRow = currentData.NewRow(); 
       newRow["ID"] = row["ID"].ToString(); 
       newRow["Value"] = row["Value"].ToString(); 
       currentData.Rows.Add(newRow); 
      } 
     } 
    ultraGrid1.DataSource = currentData; 
} 
+0

私は上記のクエリを使用するとパワンがありますが、C#エディタで間違いがたくさんあります。私は多くを意味する。 –

+0

これらはすべて構文エラーだけでした。簡単に修正できました。とにかく、私はコードを更新した、それはあなたのために今働く必要があります。 –

+0

ありがとうPawan、もう構文エラーはありません。しかし、 'DataTable currentData =(DataTable)ultraGrid1.DataSource;'この部分は 'タイプ' System.Windows.Forms.BindingSource 'のオブジェクトを' System.Data.DataTable 'と入力することができませんでした。'というエラーをスローします。 '(DataTable currentData =(DataTable)ultraGrid1.DataSource).Table;に変更しました。依然としてエラーを投げます。 –

関連する問題