当前位置:编程学习 > C#/ASP.NET >>

如何参数化遇到空值时保持正常更新

       private void GetParam(MWebConfig ac)
       {
           SqlParameter[] Param = new SqlParameter[6];
           Param[0] = new SqlParameter("@ID", SqlDbType.Int);
           Param[0].Value = ac.ID;
           Param[1] = new SqlParameter("@WebName", SqlDbType.NVarChar, 50);//网站名称
           Param[1].Value = ac.WebName;
           Param[2] = new SqlParameter("@WebSite",SqlDbType.NVarChar,50);//网站地址
           Param[2].Value = ac.WebSite;
           Param[3] = new SqlParameter("@Logo",SqlDbType.NVarChar,50);//LOGO地址
           Param[3].Value = ac.Logo;
           Param[4] = new SqlParameter("@Banner",SqlDbType.NVarChar,50);//Banner地址
           Param[4].Value = ac.Banner;
           Param[5] = new SqlParameter("@KeyWord",SqlDbType.NVarChar,50);//网站关键字
           Param[5].Value = ac.KeyWord;
}

在这个过程中,会遇到某些参数为空值,我们要如何判断空值时,自动传入DBNull.Value呢? --------------------编程问答-------------------- Param[1].Value = string.IsNullOrEmpty(ac.WebName)?DBNull.Value:ac.WebName; --------------------编程问答-------------------- 不知道楼主如何理解null或空字符串,如果你的本意是如果某个引用类型的实例字段的值是null,那么这样
 if(ac.X==null)
Param[5].Value = DBNull.Value
else
Param[5].Value =ac.X

如果楼主的理解是字符串,则使用1楼的
就我个人理解,将字符串保存为数据库的Null并不合理 --------------------编程问答-------------------- 我印象中,根本不存在这个所谓的“参数为空值”。判断一个字段值为空值,在sql中是一个特殊的表达式,例如“a is null”,而绝对不是什么“a=@a”这种悲剧。 --------------------编程问答--------------------
引用楼主 elton_tsui 的回复:
在这个过程中,会遇到某些参数为空值,我们要如何判断空值时,自动传入DBNull.Value呢?


你不用传入。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,