DbNull
в наборе результатов означает, что ваш запрос к базе данных возвращает значение NULL в некотором столбце.Значение NULL по определению не может быть преобразовано в строку, число или что-либо еще.
В вашем случае у вас есть только один столбец в вашем наборе результатов, и это число.Таким образом, ноль, вероятно, может заменить NULL без ущерба для ваших данных.
Попробуйте настроить ваши запросы так, чтобы они никогда не возвращали NULL.Вот как:
get_P_Amount = "SELECT IFNULL(`purchasing`,0) AS 'purchasing' ...
и
get_P_Amount = "SELECT IFNULL(SUM(t_price), 0) as 'purchasing' FROM `db_vegetab ...
Однако это предположение.Вы не сказали нам в своем вопросе, какая строка кода в вашей программе вызвала исключение.
Совет Pro: Никогда не используйте catch (Exception) { }
.Это заставляет вашу программу молча игнорировать вещи, которые идут не так.Вы хотите знать, когда ваша программа генерирует исключения, особенно когда она обрабатывает данные о деньгах других людей.Если вы должны его использовать, сделайте что-то вроде этого:
catch (Exception) {
/* empty, intentionally, because we ignore the zumbinated framiss */
}
Это поможет удержать следующего программиста, работающего над вашим кодом, от проклятия вашего имени.