传递空的 SQL 参数会导致错误。

4

我正在将SQL参数数组传递给我的包装函数,如下:

  SqlParameter[] sqlParams = new SqlParameter[] { 
            new SqlParameter("@UserName",userName),
            new SqlParameter("@Password",password)
  };

当我向参数传递 null 值时,SQL Server 给出以下错误信息:
存储过程或函数 'AuthenticateUser' 需要提供未提供的参数 '@Password'。

请查看此处:https://dev59.com/3m455IYBdhLWcg3wFP5u - Plue
1个回答

4

当参数值为null时,应传递dbnull值:

SqlParameter[] sqlParams = new SqlParameter[] { 
            new SqlParameter("@UserName",(object)userName ?? DBNull.Value),
            new SqlParameter("@Password",(object)password ?? DBNull.Value)
  };

谢谢Alex,但我收到了另一个错误,即“??”不能应用于字符串和System.DBNull。 - user1760979
首先将参数转换为对象:(object)userName ?? DBNull.Value - Alexandr Mihalciuc
它运行成功了............ - user1760979
我很高兴它起作用了,那么你可以将其标记为正确答案。 - Alexandr Mihalciuc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接