ExecuteScalar возвращает null или DBNull (сервер разработки или производства)

Я пытаюсь добавить столбец к существующему DataRow в C #. После этого столбец будет заполнен единственным значением из моей базы данных.

DataRow dr уже существует, и столбец «COLNAME» также существует.
comTBP - это моя SqlCommand .

dr["COLNAME"] = Convert.ToInt32(comTBP.ExecuteScalar());

Все работает нормально, если в моей базе данных есть значение и ExecuteScalar () может получить это значение. Если я тестирую этот код на моем сервере разработки (локальном), он также работает, если ExecuteScalar () возвращает null или DBNull и значение моего нового столбца равно 0. Но проблема возникает, если я развертываю свой код на производственном сервере. Если я сделаю все так же, с той же базой данных он выдает исключение с сообщением о том, что он не может преобразовать DBNull в Int32.
У меня вопрос: почему эта ошибка появляется на рабочем сервере, а не на моем локальном сервере разработки?

10
задан John Saunders 28 October 2011 в 09:10
поделиться