控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

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

作者:不详 出处:IT专家网 2010年02月03日 阅读:

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

  但在前台接收数据时不一定需要所有的实体类属性, 这样就有一些属性没有被赋值,如果这些属性是引用类型而又没有被初始化,在给存储过程参数赋值时就可能会出现问题。这是因为数据库中的 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

热推产品

  • ActiveReport... 强大的.NET报表设计、浏览、打印、转换控件,可以同时用于WindowsForms谀坔攀戀Forms平台下......
  • AnyChart AnyChart使你可以创建出绚丽的交互式的Flash和HTML5的图表和仪表控件。可以用于仪表盘的创......
首页 | 新闻中心 | 产品中心 | 技术文档 | 友情连接 | 关于磐岩 | 技术支持中心 | 联系我们 | 帮助中心 Copyright-2006 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 电话:023 - 67870900 传真:023 - 67870270 产品咨询:sales@componentcn.com 渝ICP备12000264号 法律顾问:元炳律师事务所 重庆市江北区塔坪36号维丰创意绿苑A座28-5 邮编:400020
在线客服
在线客服系统
在线客服
在线客服系统