C # с MySQL.Получить информацию о ячейках, строках и их значениях из таблицы MySQL - PullRequest
0 голосов
/ 18 апреля 2019

Я делаю приложение с C # Windows формы с MySQL, и мне нужны советы, как мне реализовать следующее:

  1. Мне нужно найти самые большие и самые большие десятичные значения извесь столбец, который может содержать любое количество значений.Мне нужно привести их к какому-либо массиву или списку (?) И затем изучить их, или лучше сделать это с помощью команд MySQL?

  2. Мне нужно вычислить сумму (илисделать любую другую математическую операцию) всех десятичных значений из значений столбца MySQL.

И вообще, где лучший способ выполнить эти операции?на стороне MySQL или на стороне WinForms?

Ответы [ 2 ]

0 голосов
/ 18 апреля 2019

В зависимости от вашей бизнес-логики и дизайна программы, это может быть сделано с любой стороны.в случае MySql может быть создана хранимая процедура, которая выполняет требуемую функциональность, и этот SP позже может быть вызван в вашем коде для получения результатов.если вы хотите сделать это в своем приложении winforms, я бы предпочел использовать Entity Framework для доступа к данным, а затем использовать LINQ для выполнения необходимых вам функций.

0 голосов
/ 18 апреля 2019

Вы можете использовать пространство имен System.Data.MySqlClient для взаимодействия с базами данных MySQL.

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

Что я обычно делаю, это просто SELECT и затем перебираю строки в том, что возвращает для обработки данных. Вы можете использовать MySqlDataAdapter, чтобы получить DataTable для этого.

DataTable dt = new DataTable();

using(var dataAdapter = new MySqlDataAdapter("SELECT decimals FROM myTable", myConnectionString)) {
    dataAdapter.Fill(dt); //fills the datatable
    double allDoubles = 0.0; // stores the sum

DataTable dt = new DataTable ();

использование (var dataAdapter = new MySqlDataAdapter ("ВЫБЕРИТЕ СУММУ (десятичные числа) ОТ myTable", connectionString)) { dataAdapter.Fill (дт); // заполняет данные double myDoubleSum = 0.0; // сохраняет сумму

allDoubles = Convert.ToDouble(row[0].ToString()); 

} }

Как говорили люди в комментариях, вы также можете сделать это с помощью функции SUM, которая при индексации не займет ни времени, ни времени.

DataTable dt = new DataTable();

using(var dataAdapter = new MySqlDataAdapter("SELECT SUM(decimals) FROM myTable", connectionString)) {
    dataAdapter.Fill(dt); //fills the datatable
    double myDoubleSum = 0.0; // stores the sum

    allDoubles = Convert.ToDouble(row[0].ToString()); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...