我编写了一个查询解析器,它应该创建一个 SqlCommand 并执行一个存储过程。存储过程的查询可以有多种形式,包括这种形式:
exec dbo.sp_StoredProcedureName 1599800
在这种情况下,我以这种方式创建 SqlParameter:
var param = new SqlParameter() { Value = paramValue };
我收到一条错误消息,指出“@Parameter1”不是过程 sp_StoredProcedureName 的参数。
有没有一种方法可以在不将其作为标准查询运行的情况下做到这一点?如果可能,我想保持一致并将 SqlCommand 构建为 StoredProcedure 类型。
我在想也许我可以先反映存储过程的参数名称,但想知道是否有另一种方法。