Не удается вытащить сумму с помощью intscalar
Я пытаюсь извлечь сумму суммы из базы данных mySql, используя intScalar-запрос.
Это вызывающий код (класс DBConnect подключается к базе данных):
Датавремя reportStart = начальная дата.Дата;
DBConnect reportConn = новый DBConnect();
MySqlCommand reportQuery = новая MySqlCommand();
reportQuery.CommandText = @"выберите sum(сумма) в качестве итога
От dbo.таблица
где создано <= @startDate";
reportQuery.Параметры.Добавить("@параметр StartDate", MySqlDbType.Дата).Значение = reportStart.Дата;
int xOutstanding = reportConn.intScalar(reportQuery);
lblRewardsDateX.Текст = xOutstanding.Метод toString();
А интскалар:
public int intScalar(MySqlCommand cmd) { int returnInt = -1; try { this.OpenConnection(); cmd.Connection = connection; //ExecuteScalar will return one value returnInt = Convert.ToInt32(cmd.ExecuteScalar()); this.CloseConnection(); return returnInt; } catch (Exception ex) { MessageBox.Show(ex.Message); } return returnInt; }
Однако это создает исключение:
Object cannot be cast from DBNull to other types.
Я дважды проверил параметр, передаваемый команде, и он не является нулевым. Так почему же он бросает исключение?
Что я уже пробовал:
Проанализировал параметр, чтобы убедиться, что он не является нулевым значением
Gerry Schmitz
Верните объект и приведите / введите, чтобы увидеть, что он на самом деле возвращает. Реальность не заботится о том, что мы думаем.