在我的C#代碼中,我將填充一個Dictionary。 我需要以最有效的方式將數據存入MySQL表中。在MySQL中,如何將一組對象傳遞給存儲過程?
是否有可能將它傳遞給MySQL存儲過程?我想我可以用逗號等字符串傳遞它,這樣存儲過程就可以調用一個函數來解析字符串並填充表,但這很痛苦。
還有其他想法嗎?
謝謝!
根據到目前爲止的意見,讓我試着展示我正在處理的代碼/ sudocode。 是建立在字典中的代碼會是這個樣子:
private void DistributeCallsToReschedule()
{
CallTimeSpacing = GetNumMinutesInNextCallWindow()/callsToReschedule.Count;
DateTime currTimeToCall = new DateTime();
foreach (int id in callsToReschedule)
{
CallIdTimeToCallMap.Add(id, currTimeToCall);
currTimeToCall.AddMinutes(CallTimeSpacing);
}
}
因此,字典可以包含我的條目。
我能做的就是將字典傳遞給存儲過程,如下所示。 如果這不可行,那麼執行存儲過程指示的最有效方法是什麼;即 存儲過程希望有一個要JOIN的表,該表具有來自填充在C#代碼中的dictonary的數據。換句話說,在MySQL中將字典數據存入表格的最有效方法是什麼?如果這是不可能的,並且我必須循環,那麼最有效的方法是什麼:迭代調用存儲過程?構建一個具有所有值的準備好的語句(通過StringBuilder構建,我想)?
參數傳遞給該存儲過程BY C#代碼:
@CallIdTimeToCallMap
將@CallIdTimeToCallMap到CallIdTimeToCallMapTable;
更新CR 集cr.TimeToCall = map.TimeToCall 從callRequest CR 內部聯接CallIdTimeToCallMapTable地圖上 cr.id = map.id
爲什麼要使用存儲過程而不是簡單的插入語句? –
您可以創建一個函數,該函數接受一個List對象,並且該函數的內部具有執行插入操作的foreach循環,爲什麼不只是創建一個簡單的插入存儲過程..顯示您迄今爲止嘗試過的或您嘗試的操作通過代碼來做... –
MethodMan