2014-11-05 155 views
-1
//SqlParameter 
public static SqlParameter[] SetParameter(string strconn, string spName, Hashtable ht) 
     { 
      SqlParameter[] parameters = GetSpParameterSet(strconn, spName); 

      for (int i = 0; i < parameters.Length; i++) 
      { 
       if (ht.ContainsKey(parameters[i].ParameterName)) 
       { 
        if (parameters[i].Direction != ParameterDirection.Output) 
        { 
         parameters[i].Value = ht[parameters[i].ParameterName]; 
        } 
       } 
      } 
      return parameters; 
     } 

使用如何从对象获取参数值[]

object[] param; 
ht.Add("@p1", strSearch.ToString()); 
ht.Add("@p2", Info.Email); 
ht.Add("@p3", "some value"); 
ht.Add("@p4", RoleID); 
ht.Add("@p5", strlocation);Hashtable ht = new Hashtable(); 
param = SqlHelperParameterCache.SetParameter(ParameterCollector.GetConString(), "StoredProcedure1", ht); 

我上面的代码片段,并需要得到一个参数的值。

如果我尝试string m = param.GetValue(4).ToString();我只获取参数的名称,但我想参数值。

+0

什么的setParameter方法的结果呢?我想你没有这样的代码片段--HashTable的启动不在这个地方。 – Reniuz 2014-11-05 12:59:33

+0

@Reniuz,我编辑了这个帖子,它返回SqlParameter [] – StackTrace 2014-11-05 13:03:41

回答

2

假设paramSqlParameter

string m = (param.Value ?? "").ToString(); 

如果param一个实例SqlParameter[],那么你需要索引到数组和然后查询值

string m = (param[4].Value ?? "").ToString(); 
+0

符号'Value'in(param [4] .Value ??“”).ToString()没有解析。 – StackTrace 2014-11-05 13:07:35

+0

@ SQL.NETWarrior是'param'' object []'或'SqlParameter []'? Seens就像'object []' - 如果只是将'param [4]'强制转换为'SqlParameter',那么你就可以访问'Value'。 – James 2014-11-05 13:08:57

+0

其对象[] – StackTrace 2014-11-05 13:10:00