2016-05-08 5 views
-1

В настоящее время у меня есть SQL-запрос, который выполняется каждую секунду и обновляет Datatable.Обновление данных с новыми данными

Я хочу обновлять данные вместо изменения с новыми значениями. Я хочу добавить новые значения к старым значениям.

Я хочу точно как этот

enter image description here

Вот это то, что я использую для получения данных из DataTable;

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

Спасибо, pawan, но в редакторе C# есть много ошибок, когда я использую выше запрос. Я имею в виду многих. –

+0

Все они были только синтаксическими ошибками, вы могли бы легко их исправить. В любом случае, я обновил код, он должен сработать на данный момент. –

+0

Спасибо, Pawan. Больше не существует синтаксической ошибки. Однако 'DataTable currentData = (DataTable) ultraGrid1.DataSource;' эта часть выдает ошибку, которая «Невозможно передать объект типа« System.Windows.Forms.BindingSource »для ввода« System.Data.DataTable ». Я изменил на «(DataTable currentData = (DataTable) ultraGrid1.DataSource) .Table; но все же выдает ошибку. –