在存储过程中添加太多参数
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,可以无限次使用。无需从代码创建每个参数。
这是我的问题,我想在我的应用程序中使用存储过程,但参数太多,我正在寻找一种在我的存储过程中使用所有参数的简单方法: 我正在考虑使用 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,可以无限次使用。无需从代码创建每个参数。