Есть запрос на подсчет суммы колонки в таблице,которая отображена на win forms и связана с базой данных. Пытаюсь просуммировать значения колонки quantity .Вот код
var sumEl = (from s in db.GetTable<Registr>() select s.quantity);
int sum = 0;
foreach (var item in sumEl) { sum = Convert.ToInt32(sum + item); }
var v = (from r in db.GetTable<Registr>() select new { r.date, sum, r.amount }).Distinct();
dataGridView1.DataSource = v;
Что здесь не так? Помогите пожалуйста,уже все обыскала.
Да вроде всё так. Должно работать.
Однако, хочу дать несколько советов.
Сумму можно получить прямо из БД:
var sum = (from s in db.GetTable<Registr>() select s.quantity).Sum();
Запросы к БД - медленные операции. В приведённом коде выполняются два запроса. Я бы убрал первый запрос и переписал одним запросом как-то так:
var registr = db.GetTable<Registr>();
var v = (from r in registr
select new
{
r.date,
sum = (from s in registr select s.quantity).Sum(),
r.amount
})
.Distinct();
Это должно быть эффективней.
Ещё я бы переименовал свойства с большой буквы: Date, Quantity, Amount
в соответствии с гайдлайнами.
Кроме того, linq2sql, по идее, должен был сгенерировать в контексте свойство Registrs
для доступа к таблице. Его можно (нужно) использовать вместо GetTable<Registr>()
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Конкретно непонятно как заставить клиента слушатьЕсть метод Bind, который связывает сокет с хостом
Есть изображение (на UI)На нем кнопка
В новой редакции языка появилось новшество ValueTask<T>
Я пытаюсь отобразить элементы из XML в TreeView используя wpf MVVM