Ошибка приходит в C#
Я пытаюсь суммировать количество некоторых элементов, поэтому я написал один для цикла.
для этого я взял max of itemid и min of itemid с помощью sql quey и executescalar (), а также Эти два значения, хранящиеся в переменных numlow и numhigh.
Я сохраненное значение numlow в "я" и "я" я использую в цикле for.
когда я запускаю код все в порядке как показано ниже
<pre> for (int i = lownum; i<= highnum; ++i) { con.Close(); con.Open();
SqlCommand qty = new SqlCommand("select itmqty from invDB where itemid='"+i+"'", con); double quant = Convert.ToDouble(qty.ExecuteScalar());
when I added sum() to that itmqty like sum(itmqty) it is showing error. Некоторые, где количество также равно нулю.
Ошибка есть "
Object cannot be cast from DBNull to other types"
Что я уже пробовал:
Я погуглил, но не нашел подходящих результатов.
ZurdoDev
Ваше значение выходит нулевым. Но у вас есть гораздо большая проблема. Вы продолжаете открывать и закрывать соединение внутри цикла, что является очень плохим способом обработки ресурсов.
Напишите sql-запрос, который делает что-то вроде этого
Выберите SUM (itemqty) в качестве TotalSum
Из someTable
Где идентификаторы от 1 до 100
и тогда нет никакой петли.
G3Coder
Привет,
Не вдаваясь в подробности того, что вы опубликовали, попробуйте использовать предложение group by в вашем SQL.
Г