这可能是一个 sql server 数据库设置问题,但我不确定从哪里开始寻找。
我有一个存储过程:
CREATE PROCEDURE aStoredProcedure
@dteSince DATETIME = null
AS
...
调用存储过程的 C# 代码是:
using (IDataReader dr = database.ExecuteReader("aStoredProcedure"))
{
...
C# 代码在生产环境中运行良好。在这里,dteSince将设置为 null,因为它不作为输入参数提供。
问题是当我在UAT环境中运行它时,它返回标题中显示的消息 -参数数量错误......
我可以通过将代码更改为:
using (IDataReader dr = database.ExecuteReader (CommandType.StoredProcedure, "aStoredProcedure"))
{
...
该修复只是掩盖了代码如何在一个环境中失败而在另一个环境中正常工作的真正问题。
我已经删除并重新创建了存储过程,但没有运气。
技术使用 C# 2.0 和 Sql Server 2005。