2013-06-21 1 views
0

Я хочу получить максимальное значение из столбца таблицы данных !!Datatable.Compute Ошибка выполнения

Моя таблица данных имеет значения

Column1     Date     Column2 Column3 Column4 

Electricity(KWH) 06/Jun/2013 00:00:00 99.00 43.00 56.00 
Electricity(KWH) 14/Jun/2013 00:00:00 260.00 48.00 212.00 

Когда я даю

enter code here 

    double a = Convert.ToDouble(dtChart.Compute("MAX(Column2)", "")); 
    variable a has value 260 

Но при использовании

  for (int i = 3; i < dtChart.Columns.Count; i++) 
     { 
      string a = dtChart.Columns[i].Caption; //a has value 'Column2'; 
      double maxYval = Convert.ToDouble(dtChart.Compute("MAX('"+a+"')","")); 
     } 

это показывает исключение, как // показывает ошибку как «ошибка синтаксиса в совокупный аргумент: ожидающий один аргумент столбца с возможным квалификатором 'Child'. Что do.pls помочь

ответ

1

Я подозреваю, что это потому, что вы цитируете его здесь:

"MAX('"+a+"')" 

Если вы пытаетесь получить только:

"MAX(Column2)" 

, то вам необходимо:

"MAX(" + a + ")" 

Или:

string.Format("MAX({0})", a) 
+0

Yo Thanx братан .Worked –

0

Если вы хотите более читаемым и менее подверженным ошибкам подход, использовать Linq-To-DataSet:

IEnumerable<DataRow> rows = dtChart.AsEnumerable(); 
double col2Max = rows.Max(r => r.Field<double>("Column2")); 
double col3Max = rows.Max(r => r.Field<double>("Column3")); 
double col4Max = rows.Max(r => r.Field<double>("Column4"));