在存储过程中添加太多参数

adding too many number of parameters in store process

这是我的问题,我想在我的应用程序中使用存储过程,但参数太多,我正在寻找一种在我的存储过程中使用所有参数的简单方法: 我正在考虑使用 propertyinfo 的解决方案 这是我的程序:

你有减少这个过程的解决方案吗? 提前致谢

首先,我建议使用 Dictionary<string, object> 而不是 List<KeyValuePair<string, object>,因为字典已经实现了 IEnumerable<KeyValuePair<T,T>

其次,您不需要显式地创建每个参数,您可以使用 SqlCommand.Parameters.Add 的几乎任何重载,因为它们 return 将 SqlParameter 对象返回给调用方法,允许您像这样指定参数值:

cmd2.Parameters.Add("@ParamName", SqlDBType.Int).Value = ParamValue;

在这种情况下,我什至不会使用参数列表,而是像这样直接添加它们:

cmd2.Parameters.Add("@TK_Num", SqlDBType.Int).Value = ticket.TK_Ty;
cmd2.Parameters.Add("@TK_Mouv", SqlDBType.Int).Value = ticket.TK_Mouv;
cmd2.Parameters.Add("@TK_Im", SqlDBType.Int).Value = ticket.TK_Immatriculation;
....

您可以使用 TVP。它有助于将 table 参数传递到 sproc 并使其更易于访问。

使用TVP,可以无限次使用。无需从代码创建每个参数。