是否有更好的方法将超过35个参数传递给SQL Server存储过程?
我有一个网页,其中包含35个以上的输入控件(文本框,下拉列表,日期选择器),我需要将所有这些控件传递给存储过程,以将这些值插入表中。
我正在使用当前的基本方法,如下所示:
cmd.Parameters.Add("@SplProjectNum1", SqlDbType.VarChar).Value = txtPromptNumber;
cmd.Parameters.Add("@SplProjectNum2", SqlDbType.VarChar).Value = ProjectClosureDate.ToString();
cmd.Parameters.Add("@SplProjectNum3", SqlDbType.VarChar).Value = txtPromptNumber;
cmd.Parameters.Add("@SplProjectNum4", SqlDbType.VarChar).Value = txtPromptNumber;
cmd.Parameters.Add("@SplProjectNum5", SqlDbType.VarChar).Value = txtPromptNumber;
cmd.Parameters.Add("@SplProjectNum6", SqlDbType.VarChar).Value = txtPromptNumber;
...
创建一个具有所有参数作为其属性的类,然后创建一个对象并将值分配给这些属性。之后,您可以将对象序列化为XML,并将此XML传递给您的存储过程。稍后,您可以在此方法中添加类的其他属性,这些属性将自动添加到传递给存储过程的XML数据中,因此存储过程的参数或签名不变。在存储过程中,您可以解析XML数据并获取所需的值。
您的存储过程始终只有一个参数,
CREATE PROCEDURE SPABC_XYX ( @P_XML XML) ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句