[英]C# ASP.NET: create general method to call Stored Procedure with any number of parameters
在这个时期我要处理的项目中,我必须在SQL Server中处理很多存储过程,实际上我使用了这种方法(使用Dapper):
public static foo_type call_stored_procedure(string stored_procedure_name, string ConnectionString, type_param_1 param1, type_param_2 param2)
{
using (var connection = new SqlConnection(ConnectionString))
{
connection.Open();
var server_return = connection.Query<foo_type>(stored_procedure_name,
new { param1 = param1, param2 = param2 }, commandType: CommandType.StoredProcedure);
if (server_return != null)
return server_return;
}
return null;
}
此方法存在以下两个问题:
foo_type
类型的对象 我想将此方法通用化,所以
函数声明将类似于:
public static <T> call_stored_procedure(string stored_procedure_name, string ConnectionString, <T> type, <T> params...)
有没有办法在C#中做这样的事情?
尝试这个:
public T CallStoredProcedure<T>(connectionString, procName, params object[] parameters)
{
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
var server_return = connection.Query<T> (procName, parameters, commandType: CommandType.StoredProcedure);
if (server_return != default(T))
return server_return;
}
return default(T);
}
尝试将Dictionary<string,object>
作为参数传递并返回object
。
这类似于ASP.NET MVC允许将任意数量的参数发送到操作的方式。 您的存储过程将通过其键从字典中检索所需的参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.