При вставке нового ученика в базу данных их GPA не вводится, поэтому, когда я вызываю обработчик события для отображения GPA, он сбой.Невозможно преобразовать объект в double
object value;
sql = string.Format("SELECT ROUND(AVG(CAST(Rating AS Float)), 4) FROM GPA WHERE StudentID={0};;", StudentID);
value = this.datatier.ExecuteScalarQuery(sql);
double avgGPA;
if (value != null)
{
System.Windows.Forms.MessageBox.Show("null");
avgGPA = Convert.ToDouble(value);
}
else avgGPA = 0.0;
Я попытался это исправить, где я убеждаюсь value!=null
, прежде чем я Convert.ToDouble()
, но я врезаться независимо, в частности, на этой линии:
avgGPA = Convert.ToDouble(value);
с ошибкой: Объект не может быть отлит из DBNull в другие типы.
Мой вопрос в том, как назначить значение по умолчанию, например 0.0, чтобы программа не сработала, когда GPA не найден?
EDIT: Все были на месте решения, благодаря всем! Возникает новый вопрос, является ли DBNull всегда нулевым запросом базы данных?
изменения, если – Ewan
также, я бы не установил ГПД в 0, когда вы не можете найти его (значение = DBNull.Value!). сделать его нулевым или что-то – Ewan
Никто не использует 'значение - это DBNull' #sadpanda – leppie