ExecuteScalar在服务器上不起作用
时间:2020-03-06 14:57:04 来源:igfitidea点击:
该应用程序使用Oracle DataAccess版本。 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();上失败。出现此错误:
事件类型:错误
事件源:应用程序日志
事件类别:无
事件ID:9961
日期:2008年9月30日
时间:下午4:42:11
用户:N / A
电脑:Server15
描述:
System.NullReferenceException:对象引用未设置为对象的实例。
在Oracle.DataAccess.Client.OracleCommand.ExecuteReader处(布尔重新查询,布尔fillRequest,CommandBehavior行为)
在Oracle.DataAccess.Client.OracleCommand.ExecuteReader()
在Oracle.DataAccess.Client.OracleCommand.ExecuteScalar()
在OracleMembershipProvider.cs中的Membership.OracleMembershipProvider.GetApplicationId(String applicationName,Boolean createIfNeeded)处:1626行
我已经从我可以想到的各个角度进行了研究……基本上,无论我如何包装它,Execute都会失败。
解决方案
我注意到CommandText不包含指定的参数":applicationName"
这不是" ExecuteReader"中的错误。执行查询时出错... applicationName是否为null?