ExecuteScalar在服务器上不起作用

时间:2008-09-30 22:13:31

标签: oracle .net-2.0

该应用程序使用Oracle DataAccess ver。 1.1。 ,VS 2008,.Net Framework 3.5 w / 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)

对象lookupResult = cmd.ExecuteScalar();有这个错误:

事件类型:错误 事件来源:App Log 活动类别:无 事件ID:9961 日期:2008年9月30日 时间:下午4:42:11 用户:N / A. 电脑:Server15 描述: System.NullReferenceException:未将对象引用设置为对象的实例。    at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery,Boolean fillRequest,CommandBehavior behavior)    在Oracle.DataAccess.Client.OracleCommand.ExecuteReader()    在Oracle.DataAccess.Client.OracleCommand.ExecuteScalar()    在OracleMembershipProvider.cs中的Membership.OracleMembershipProvider.GetApplicationId(String applicationName,Boolean createIfNeeded):第1626行

我从各个角度看待这个我能想到的......基本上,无论我如何包裹它,执行失败。

2 个答案:

答案 0 :(得分:1)

我注意到你的CommandText不包含指定的参数“:applicationName”

答案 1 :(得分:1)

“ExecuteReader”中没有错误。执行查询时出错...是applicationName null?