ExecuteScalar()
иногда возвращает пустой объект -not null- хотя запись существует. Когда я анализирую этот объект с помощью quickwatch, я вижу, что object.GetType()
равен DbNull
. Я могу обработать этот пустой объект, но мне нужно знать, почему он возвращает пустой объект, хотя запись существует.ExecuteScalar() иногда возвращает пустой, но не нулевой объект. Зачем?
string sql = @"SELECT SentDate
FROM dbo.EmailOut
WHERE ID = @ID";
SqlCommand cmd = new SqlCommand(sql, _cnn);
cmd.CommandType = System.Data.CommandType.Text;
cmd.Parameters.Add(new SqlParameter("@ID", ID));
object obj = cmd.ExecuteScalar();
if (obj == null)
return false
sentDate = (DateTime)obj;
cmd.Dispose();
В большинстве случаев мой запрос работает отлично. Можете ли вы проверить мой код?
Этот "пустой" объект * есть * null. –
Записи могут существовать, но, возможно, столбец «SentDate» равен «null»? –
В надежде, что это всего лишь пример, но вы должны обернуть вас 'SqlCommand' в операторе' using' –