彩票走势图

Asp.net如何处理存储过程中参数为空的问题

原创|其它|编辑:郝浩|2009-09-30 10:58:05.000|阅读 640 次

概述:在写插入新记录的存储过程时,存储过程的参数一般和实体类的属性对应。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

  在写插入新记录的存储过程时,存储过程的参数一般和实体类的属性对应。

  但在前台接收数据时不一定需要所有的实体类属性, 这样就有一些属性没有被赋值,如果这些属性是引用类型而又没有被初始化,在给存储过程参数赋值时就可能会出现问题。这是因为数据库中的 null 类型对应.net 中的 DBNull 类型而不是 null 类型,而且DBNull 无法自动转为null。

  解决的办法:

  1.在实体类定义属性时添加默认值(初始化)。

 class info
  {
  string _a = "";//对引用类型变量初始化
  int _b;//值类型无需初始化
  public string A
  {
  get { return _a; }
  set { _a = value; }
  }
  public int B
  {
  get { return _b; }
  set { _b = value; }
  }
  }

  2.在给存储过程参数赋值的时候进行判断:

cmd.Parameters.Add("@a", _info.A==null?"":_info.A);

  3.在sqlserver的存储过程中对参数赋默认值:

 CREATE proc a
  (
  @a varchar(50)=null,
  @b varchar(50)=null
  )
  as
  insert into info(a,b) values (@a,@b)
  GO


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:IT专家网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP