0
我正在使用WinForms桌面應用程序。在這個應用程序上,我必須對SQL Server數據庫進行一些更新。我可以用存儲過程表參數我們應該使用帶有表參數的單個執行存儲過程還是使用單獨參數的多個執行過程?
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.AddWithValue("@changes", changes.ToTable(false, "ItemNo", "Info"));
做到這一點,並執行只有一次,或與一個循環過程多次與字符串參數執行的程序。
for (...)
{
...
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.AddWithValue("@Item", "Item 1"));`
comm.Parameters.AddWithValue("@Info", "Info 1"));`
int i = comm.ExecuteNonQuery();
...
}
這是最好的做法嗎?
重要的是要知道你在做什麼存儲過程。如果它只是少數記錄的插入/更新,我根本不會使用存儲過程,而是使用正確的書面參數化查詢(當然不使用AddWithValue)。 – Steve
存儲過程不包含任何複雜的操作,只是簡單的更新。我不在我的應用程序中使用SQL查詢來保持應用程序層分離,所以你的建議對我的情況沒有幫助。 – Adnand
您也可以傳遞XML並將其作爲批處理進行更新。 –