首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL参数在For循环中?

SQL参数在For循环中?
EN

Stack Overflow用户
提问于 2015-10-26 14:26:30
回答 2查看 788关注 0票数 1

我开始重构我的代码,以便在我的asp.net应用程序中使用‘最佳’实践。

我正在做的一个重要的重构因素是改变我在应用程序中使用ado.net的方式。我已经更改了所有查询,在这些查询中,我将通过存储过程检索基于用户输入的信息,获取输入参数,以减少应用程序的负载,并将数据库项保持在数据库级别。我还更改了一个insert语句,允许用户在数据库上使用参数,而不是直接从字符串列表中提取。

但是,我已经注意到自己已经重复了23次代码。我的代码需要某种循环,但我想不出怎么做。我看过额叶环,但不起作用。

我把我的密码附在下面。你们中的一个能帮我吗?给我正确的循环以便使用最佳实践,并给出一个使用它的例子(请不要像我想要理解的那样为我编写代码),但是告诉我这个循环是如何工作的。

代码:

代码语言:javascript
复制
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]);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-26 14:29:50

我会使用这样一个普通的for循环:

代码语言:javascript
复制
for(int index = 0; index < list.Length; index++)
{
    com.Parameters.AddWithValue("@H" + index.ToString(), list[index]);
}

但是,我建议您使用 use AddWithValue,因为它可能会产生意想不到的后果。相反,可以这样做:

代码语言:javascript
复制
com.Parameters.Add("@H" + index.ToString(), SqlDbType.Int).Value = list[index];
票数 5
EN

Stack Overflow用户

发布于 2015-10-26 14:29:36

假设list是一个列表而不是一个数组,这应该可以做到这一点。

代码语言:javascript
复制
for(int i = 0 ; i < list.Count ; i++)
{
    com.Parameters.AddWithValue(string.Format("@H{0}",i),list[i]);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33348197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档