我有一个数据层,我正在使用三种不同的存储过程调用数据库三次。我最初创建了三个不同的函数来检索三维结果。第一个返回单个值,第二个返回整行,第三个返回一个表。他们也采取不同的参数。第一个需要两个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