参数化查询‘(@UserName nvarchar(10),@NickName nvarchra(50)’ 需要参数 @NickName,但未提供该参数

我们往数据库表中添加一行数据的时候,数据库允许某一列为空,但是实际案例操作添加的时候,会遇到一些问题,比如下图。这样,我们就需要做一些处理。

这个两种修改方式

第一种:

在方法体中,实体类赋值时修改。用三目运算。

 UserInfo userInfo = new UserInfo();

userInfo.NickName = string.IsNullOrEmpty(register.txtNickName) == true ? "" : register.txtNickName.ToLower().Trim();

第二种:

在DAL(数据链路层),

 SqlParameter[] pars = { 
                                    new SqlParameter("@UserName",userInfo.UserName),
                                    new SqlParameter("@NickName",userInfo.NickName),
                                    new SqlParameter("@Password",userInfo.Password.),
                                    new SqlParameter("@Mail",userInfo.Mail),
                                    new SqlParameter("@Address",userInfo.Address),
                                    new SqlParameter("@Phone",userInfo.Phone)
                                  };
            foreach (SqlParameter item in pars)
            {
                if (item.Value==null)
                {
                    item.Value = DBNull.Value;
                }
            }

第一种直接用空字符串。第二种,循环遍历。对传入的数据作空值的处理,一旦其为空,就设置为DBNull.value.

你可能感兴趣的:(C#,问答)