(1)传递过去的参数多于存储过程需要的参数
(2)for循环或其他方法多次调用同一个存储过程的时候,如果第二次没有写代码:
mycmd=newSqlCommand("proc_insertInfo",SqlConn);
mycmd.CommandType=CommandType.StoredProcedure;就会报这个错误
事实证明不能将上述两行代码写到for循环之外。
(3)如果以sp开头,用户创建的存储过程,总会先检查master数据库(即使该存储过程已用数据库名称限制)。如果用户创建的存储过程与系统存储过程同名,则永远不执行用户创建的存储过程,因此用exec sp_executesql @sqlString的方式执行存储过程的时候给@sqlString起名字的时候要明确最好体现功能不要写成 declare @sql
set @sql='......'。