2010-06-30 61 views
1

我正在开发asp.net应用程序。我有3个值在web.config相同的密钥 例如:add key =“ids”value =“12333,43434343,434232”。如何在asp.net中一次绑定多个值cmd.parameters.addwithvalue()

在aspx.cs iam这样调用。

string merchantIds = ConfigurationManager.AppSettings["ids"]; 
string paramName = null; 
foreach (string ids in merchantIds.Split(',')) 
{ 
    paramName = ids;   
} 
com.Parameters.AddWithValue("@FBUserID", paramName); 

我只获取最后一个id输出。我想在这里显示与3个ID相关的输出。

请帮我关于这个..提前

感谢, 易卜拉欣。

+1

14个问题,没有接受的答案? – 2010-06-30 12:14:41

回答

2

参数是单数,你不能有一个参数呈现多个值。您需要修改您的proc来处理逗号分隔的ID,并且在proc中执行该工作,或者为每个Ids执行每个步骤的工作...

EDIT最简单的方法是这样做:

using (var conn = new SqlConnection(...)) 
{ 
    using (var command = new SqlCommand(..., conn)) 
    { 
    command.CommandType = CommandType.StoredProcedure; 

    // add other parameters here. 

    var param = command.Parameters.Add("@FBUserID", SqlDbType.VarChar, 10); 
    foreach (string merchant in ConfigurationManager.AppSettings["ids"].Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) 
    { 
     param.Value = merchant; 
     command.ExecuteNonQuery(); 
    } 
    } 
} 

理想情况下,你应该考虑处理像这样的商家ID是否真的是最好的设计。

哦,如果你找到那些已经给出了正确的答案,请确保你接受它是这样,否则我们所有StackOverflowers真的给你答案白白....

+0

嗨,感谢您的快速响应。 如何运行每个ID的过程? SqlCommand com = new SqlCommand(“proc_name”,con); - 3次 com.CommandType = CommandType.StoredProcedure; - 3次 com.Paecters.AddWithValue(“FBUserID”,ConfigurationManager.AppSettings [“ids”]。ToString() - 3次 com.ExecuteScalar(); 3 times 这里我如何为每个存储过程传递不同的id,我已经在web.config中给出了像add key =“ids”value =“12333,43434343,434232”。 谢谢, 易卜拉欣。 – ibrahimkhan 2010-07-01 07:36:52

1

你的foreach循环将所有值写入相同的变量,因此只使用最后一个值。就像马修说的,你必须编辑proc以逗号分隔的字符串,或者运行proc 3次

相关问题