如何参数化遇到空值时保持正常更新
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”这种悲剧。 --------------------编程问答--------------------
你不用传入。
补充:.NET技术 , C#