【发布时间】:2015-10-26 14:26:30
【问题描述】:
我开始重构我的代码以在我的 asp.net 应用程序中使用“最佳”实践。
我正在进行的一项重大重构是改变我在应用程序中使用 SQL (ado.net) 的方式。我已经更改了所有查询,在这些查询中,我根据用户输入检索信息,这些查询是通过采用输入参数的存储过程来完成的,以减少应用程序的负载并将数据库项目保持在数据库级别。我还更改了一个插入语句,允许用户对数据库执行以使用参数,而不是直接从字符串列表中获取。
但是,我注意到自己现在总共重复了 23 次我的代码。我的代码正在为某种循环而尖叫,但我想不出该怎么做。我看过 foreach 循环,但它不起作用。
我在下面附上了我的代码。你们中的哪一个可以通过给我正确的循环以供最佳实践和使用它的示例来帮助我(请不要为我编写代码,因为我想理解它),但是告诉我循环是如何工作的.
代码:
com.Parameters.AddWithValue("@H0", list[0]);
com.Parameters.AddWithValue("@H1", list[1]);
com.Parameters.AddWithValue("@H2", list[2]);
com.Parameters.AddWithValue("@H3", list[3]);
com.Parameters.AddWithValue("@H4", list[4]);
com.Parameters.AddWithValue("@H5", list[5]);
com.Parameters.AddWithValue("@H6", list[6]);
com.Parameters.AddWithValue("@H7", list[7]);
com.Parameters.AddWithValue("@H8", list[8]);
com.Parameters.AddWithValue("@H9", list[9]);
com.Parameters.AddWithValue("@H10", list[10]);
com.Parameters.AddWithValue("@H11", list[11]);
com.Parameters.AddWithValue("@H12", list[12]);
com.Parameters.AddWithValue("@H13", list[13]);
com.Parameters.AddWithValue("@H14", list[14]);
com.Parameters.AddWithValue("@H15", list[15]);
com.Parameters.AddWithValue("@H16", list[16]);
com.Parameters.AddWithValue("@H17", list[17]);
com.Parameters.AddWithValue("@H18", list[18]);
com.Parameters.AddWithValue("@H19", list[19]);
com.Parameters.AddWithValue("@H20", list[20]);
com.Parameters.AddWithValue("@H21", list[21]);
com.Parameters.AddWithValue("@H22", list[22]);
com.Parameters.AddWithValue("@H23", list[23]);
【问题讨论】:
-
您可能想查看table valued paramters,它允许您将数据列表传递给存储过程。
标签: c# asp.net sql-server ado.net