asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

asp.net 使用存储过程时参数为空时的处理


发布日期:2020年09月29日
 
asp.net 使用存储过程时参数为空时的处理

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

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

解决的办法

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

class info

{

string _a = ;//对引用类型变量初始化

int _b;//值类型无需初始化

public string A

{

get { return _a; }

set { _a = value; }

}

public int B

{

get { return _b; }

set { _b = value; }

}

}

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

cmdParametersAdd(@a _infoA==null?:_infoA);

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

CREATE proc a

(

@a varchar()=null

@b varchar()=null

)

as

insert into info(ab) values (@a@b)

GO

上一篇:ASP.NET需要掌握的基础内容

下一篇:ASP.NET MVC实现自己的视图引擎