2014-11-05 111 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