我有一個數據層,我正在使用三種不同的存儲過程調用數據庫三次。我最初創建了三個不同的函數來檢索三維結果。第一個返回單個值,第二個返回整行,第三個返回一個表。他們也採取不同的參數。第一個需要兩個varchars,第二個int和最後三個varchars。如果我嘗試變得幻想並將其全部合併,如下所示,我會遇到問題嗎?在不知道類型或使用混合類型數組的情況下分配SqlParameter.Value
public void CallStoredProcedure(string[] astrParams, string strConnectionString, string strStoredProcedure)
{
int nParams = 0;
SqlParameter[] asqlParams;
asqlParams = SqlHelperParameterCache.GetSpParameterSet(strConnectionString, strStoredProcedure);
foreach (string strParam in astrParams)
{
asqlParams[nParams].Value = strParam;
nParams++;
}
}
可替換地,我可以使用混合數據類型的數組不知道什麼是在那裏,我可以指定不同類型的到同一陣列,取代元素?
object[] aParams;
string strName = "Joe";
long lngHeight = 180;
object[0] = strName;
object[1] = lngHeight;
CallStoredProcedure(aParams, strConnectionString, "StoredProcedure1")
long lngWeight = 3;
string strItemName = "Bookend";
object[0] = lngWeight;
object[1] = strItemName;
CallStoredProcedure(aParams, strConnectionString, "StoredProcedure2")
,然後更改該函數裏面的代碼:
foreach (object oParam in astrParams)
{
asqlParams[nParams].Value = oParam;
nParams++;
}
我會需要這些案件一方或雙方使用ToString()
?如果是這樣,這是否基本上把它們變成了同樣的東西?就像我所說的,現在我有三個函數可以正確輸入所有參數,但是如果可能的話,我試圖擺脫重複的代碼。
查找'Parameter.AddWithValue' – MethodMan 2014-10-17 19:38:33