最近遇到这个问题,开始以为是没写参数或者传入参数名不匹配。
后来打印参数发现并没有错。
后来以为是命令类型写错了。如果是存储过程要设置为CommandType.StoredProcedure。
还是没错。
最后才发现,传入参数的时候不能直接传null!!
比如这种情况
string Name = null; new SqlParameter("@Name", SqlDbType.NVarChar) { Value = Name },
这样直接传递了null给参数,就会报错。
正确的写法
new SqlParameter("@Name", SqlDbType.NVarChar) { Value = DBNull.Value },