ExecuteScalar возвращает тип объекта. Вот почему у вас такое же поведение на scm.ExecuteScalar().ToString();
или Blogger.ToString()
.
Реализация по умолчанию для типа объекта метода ToString возвращает полное имя типа объекта, как показано в следующем примере.
Если этот объект НЕДЕЙСТВИТЕЛЕН, вы получите ошибку Object reference not set to an instance of an object.
Ваш второй случай с:
object blogger= "";
if (blogger.ToString() != string.Empty)
{
....
}
Не следует выдавать исключение, а возвращать строку, представляющую экземпляр объекта. Например: "YourNameSpace.Blogger"