簡體   English   中英

在繼續foreach循環之前,如何等待數據庫命令完成一次迭代

[英]How to wait for a database command to complete one iteration before continuing in foreach loop

我想知道如何在每個循環的下一個迭代之前等待數據庫命令完成。

以下代碼幾乎將所有SQL語句“ EXEC ups_StoredProc”一起發送,而無需等待下一個語句完成:

foreach (var guid in anUserIDList)
            {
                Database.ExecuteCmd(string.Format("EXEC dbo.usp_StoredProc @MemberContactID = '{0}'", guid), con);
            }

我試圖獲取存儲在變量中的proc的結果,但是即使命令尚未完成,它也會返回0。

int result =  Database.ExecuteCmd(string.Format("EXEC dbo.usp_StoredProc @MemberContactID = '{0}'", guid), con);

謝謝

您必須查看該呼叫的文檔。

從您的評論中,我看到方法簽名是:

public static int ExecuteCmd(string SQLCommand, IDbConnection con, params DBParam[] Params);

根據我的經驗,我很可能會猜測這已經是一個阻塞調用,並且它會返回受影響的行數。 如果是這樣,您所擁有的應該可以工作。

是什么讓您認為存儲過程應該返回0以外的0 您確定這有效嗎?

如您所建議,如果這是一個非阻塞調用,那么您可能無能為力。 除非返回的整數引用某些可連接的任務,否則它可能會“丟失”。 但是,那將是一個糟糕的設計決定,所以我確實對此表示懷疑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM