ExecuteScalar не работает на сервере

Приложение использует Oracle DataAccess ver. 1.1. , VS 2008, .Net Framework 3.5 с пакетом обновления 1 (SP1)

OracleConnection connection = new OracleConnection(ConnectionStringLogon);
connection.Open();

OracleParameter selectParam = new OracleParameter(":applicationName", OracleDbType.Varchar2, 256);
selectParam.Value = applicationName;

if (connection.State != ConnectionState.Open)
    connection.Open();

OracleCommand cmd = new OracleCommand();

cmd.Connection = connection;
cmd.CommandText = "Select ApplicationId from Applications where AppName = 'appName'";
cmd.CommandType = CommandType.Text;

if (selectParam != null)
{
        cmd.Parameters.Add(selectParam);
}
object lookupResult = cmd.ExecuteScalar();
cmd.Parameters.Clear();

if (lookupResult != null)

Процедура завершается ошибкой при поиске объекта. Результат = cmd.ExecuteScalar(); с этой ошибкой:

Тип события: Ошибка Источник события: Журнал приложений Категория события: Нет КОД события: 9961 Дата: 30 сентября 2008 г. Время: 16:42:11 Пользователь: Н/Д Компьютер: Server15 Описание: System.NullReferenceException: Ссылка на объект не задана к экземпляру объекта. в Oracle.DataAccess.Client.OracleCommand.ExecuteReader (логический запрос, логическое fillRequest, поведение CommandBehavior) в Oracle.DataAccess.Client.OracleCommand.ExecuteReader() в Oracle.DataAccess.Client.OracleCommand.ExecuteScalar() в Membership.OracleMembershipProvider.GetApplicationId (String applicationName, Boolean createIfNeeded) в OracleMembershipProvider.cs:строка 1626

Я смотрел на это со всех сторон, которые только мог себе представить... в основном, независимо от того, как я это оборачиваю, Execute терпит неудачу.


person Community    schedule 30.09.2008    source источник


Ответы (2)


Я заметил, что ваш CommandText не содержит указанного параметра ":applicationName"

person Duncan Smart    schedule 30.09.2008

Это не ошибка в «ExecuteReader». Это ошибка при выполнении запроса... applicationName null?

person Sklivvz    schedule 30.09.2008