首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExecuteScalar抛出NullReferenceException

ExecuteScalar抛出NullReferenceException
EN

Stack Overflow用户
提问于 2009-02-18 02:34:41
回答 2查看 10.7K关注 0票数 5

此代码在调用ExecuteScalar时抛出NullReferenceException

代码语言:javascript
复制
selectedPassengerID = 0;

//SqlCommand command = GenericDataAccess.CreateCommand();


// 2nd test
string connectionString = "";
SqlConnection conn;

connectionString = ConfigurationManager.
    ConnectionStrings["ConnST-MHM"].ConnectionString;
conn = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand();
command.CommandType = CommandType.StoredProcedure ;
command.Connection = conn;
command.CommandText = "SearchForPassenger";

SqlParameter param;

param = command.CreateParameter();
param.ParameterName = "@name";
param.Value = pName; // Session[""];
param.DbType = DbType.String;
command.Parameters.Add(param);

param = command.CreateParameter();
param.ParameterName = "@flightDate";
param.Value = date; 
param.DbType = DbType.String;
command.Parameters.Add(param);

param = command.CreateParameter();
param.ParameterName = "@ticketNo";
param.Value = ticketNumber; 
param.DbType = DbType.Int32;
command.Parameters.Add(param);

int item;

command.Connection.Open();
item = (int)command.ExecuteScalar();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-02-18 02:47:39

我已经将我的大部分SQL逻辑封装在DAL中。其中一个DAL方法使用以下逻辑拉取标量Int。它可能会为你工作:

代码语言:javascript
复制
  object temp = cmnd.ExecuteScalar();
  if ((temp == null) || (temp == DBNull.Value)) return -1;
  return (int)temp;

我知道你在上面输入了很多代码,但我认为这才是你问题的本质。祝好运!

票数 13
EN

Stack Overflow用户

发布于 2009-02-18 02:50:49

如果查询没有返回任何记录,则ExecuteScalar返回null (例如,当您的SearchForPassenger存储过程没有返回任何行时)。

所以这一行:

代码语言:javascript
复制
item = (int) command.ExecuteScalar();

在这种情况下,正在尝试将null强制转换为int。这将引发一个NullReferenceException

根据刚刚弹出的Mark's answer,您需要检查null

代码语言:javascript
复制
object o = command.ExecuteScalar();
item = o == null ? 0 : (int)o;
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/559632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档