У меня есть фрагмент кода, похожий на этот:
select p.Make, count(p.Make) as _count
from Products p
where p.GroupId = @GroupId
group by p.Make
полный набор результатов будет что-то с 5 строками:
Make _count
``````````````
Make1 32
Make2 54
Make3 60
Make4 09
Make5 47
В C # я пытаюсь рассчитать проценты для каждой марки (предположим, что я уже знаю общее количество продуктов), чтобы я мог построить диаграмму изображений Google (круговую диаграмму), поэтому мне нужно передать 5 значений.
Я пытаюсь сделать это:
int Make1Count = from row in DataSetProducts.tables[0].AsEnumerable()
where row.Field<string>("Make") == MyEnum.Makers.Make1.ToString()
select row.Field<int>("_count");
и т. Д. До Make5Count. В идеале у меня должно быть 5 результатов, но это не всегда так, иногда результат выглядит так:
Make _count
``````````````
Make1 32
Make4 09
Make5 47
Но мне все еще нужны Make2 и 3 (они просто равны нулю)
Моя проблема в том, что этот код выдает исключение, например, когда Make2 не найден.
Как мне избежать этого, пожалуйста?
примечание 1) В моей базе данных нет списка всех производителей, поэтому я не могу объединить это с чем-либо
примечание 2) Здесь я избегал Convert.toInt32 как раз перед from row in ...
, чтобы сделать его понятным
это должно быть довольно тривиально, но я не могу как-то это понять.