Ошибка при выполнении вычисления SUM () в столбце - PullRequest
1 голос
/ 05 мая 2019

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

Я прошел по этим ссылкам
1. Как преобразовать тип столбца DataTable?
2. Ошибка при приеме СУММ () столбца в датированном
3. Неправильное использование агрегатной функции Sum () и типа: String

//This is the column i add into my datagrid
MITTRA.Columns.Add("Min_Tol");
MITTRA.Columns.Add("Max_Tol");
MITTRA.Columns.Add("Min_Weight");
MITTRA.Columns.Add("Max_Weight");

// The following codes is working finely
// if you notice MTTRQT column, it's a data queried from database
for (int i = 0; i <= MITTRA.Rows.Count - 1; i++)
{
    string item = MITTRA.Rows[i]["MTITNO"].ToString();

    Tolerancechecking = database_select4.LoadUser_Tolerance(item);

    MITTRA.Rows[i]["Min_Tol"] = Tolerancechecking.Rows[0]["Min_Tol"].ToString();
    MITTRA.Rows[i]["Max_Tol"] = Tolerancechecking.Rows[0]["Max_Tol"].ToString();

    MITTRA.Rows[i]["Min_Weight"] = Convert.ToDecimal(MITTRA.Rows[i]["MTTRQT"]) - ((Convert.ToDecimal(MITTRA.Rows[i]["MTTRQT"]) * Convert.ToDecimal(MITTRA.Rows[i]["Min_Tol"]) / 10));
    MITTRA.Rows[i]["Max_Weight"] = Convert.ToDecimal(MITTRA.Rows[i]["MTTRQT"]) + ((Convert.ToDecimal(MITTRA.Rows[i]["MTTRQT"]) * Convert.ToDecimal(MITTRA.Rows[i]["Max_Tol"]) / 10));

    dataGrid2.Columns.Clear();
    dataGrid2.ItemsSource = null;
    dataGrid2.ItemsSource = Tolerancechecking.DefaultView;

}


//Working Sum computation
Decimal Sum = Convert.ToDecimal(MITTRA.Compute("SUM(MTTRQT)", string.Empty));  
MaxTol.Text = Sum.ToString();  /*** This is working as i got my value on the text box ****/

Ошибки при попытке вычисления суммы для другого столбца Начальная попытка

  1. Decimal Sum = Convert.ToDecimal(MITTRA.Compute("SUM(Min_Weight)", string.Empty));

Произошли ошибки

Недопустимое использование статистической функции Sum () и Type: String.

Вторые попытки

  2.  Decimal Sum = Convert.ToDecimal(MITTRA.Compute("SUM(Convert(Min_Weight,'System.Decimal'))", string.Empty));
  3.  Decimal Sum = Convert.ToDecimal(MITTRA.Compute("SUM(Convert(Min_Weight,'System.Decimal'))", ""));

Произошли ошибки

Синтаксическая ошибка в агрегированном аргументе: ожидание аргумента из одного столбца с возможным квалификатором 'Child'.

Как мне заставить работать функцию вычисления суммы?

1 Ответ

2 голосов
/ 06 мая 2019

Спасибо @NoChance за решения.Надеюсь, что этот пост может помочь другим.

/***** This is the part where i declare my datacolumn data type ****/
DataColumn Min_Weight = new DataColumn("Min_Weight");
Min_Weight.DataType = System.Type.GetType("System.Decimal");
MITTRA.Columns.Add(Min_Weight);

/**** This Works finally *****/ 
Decimal Sum = Convert.ToDecimal(MITTRA.Compute("SUM(Min_Weight)", string.Empty)); 
MaxTol.Text = Sum.ToString(); 
...