2010-06-30 38 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次