2010-12-17 59 views
1

我有SQL參數數組爲...c中的動態數組#

SqlParameter [] sqlParams = new SqlParameter [2];

如果我想添加更多參數,我可以添加到當前數組嗎?

回答

12

不,你不能附加元素。在.NET數組是靜態的。如果你想動態集合,你可以使用一個通用的List<T>你可以動態添加元素。

var sqlParams = new List<SqlParameter>(); 
sqlParams.Add(param1); 
sqlParams.Add(param2); 
... 

// convert to a static array if needed 
SqlParameter[] result = sqlParams.ToArray(); 
+0

1+列表是方式更好 – 2010-12-17 20:57:30

+0

&你可以使用.ToArray()如果​​你需要 – 2010-12-17 20:59:41

+0

但是,我如何將它傳遞給sqlCommand的「參數」屬性? – Relativity 2010-12-17 21:05:26

3

可能更好地使用System.Collections.Generic.List <>

List<SqlParameter> sqlParams = new List<SqlParameter>(); 
sqlParams.Add(x); 
sqlParams.Add(y); 
sqlParams.Add(z); 

如果你需要一個數組,你可以隨時去:

sqlParams.ToArray(); 
1

其實,我想只需使用SqlCommand的內置參數屬性。

System.Data.SqlClient.SqlConnection connection 
     = new System.Data.SqlClient.SqlConnection("connection string goes here"); 
    System.Data.SqlClient.SqlCommand command = connection.CreateCommand(); 

    System.Data.SqlClient.SqlParameter parameter = command.CreateParameter(); 
    parameter.ParameterName = "@ParameterName"; 
    parameter.DbType = DbType.String; 
    parameter.Value = "Some String Value"; 

    command.Parameters.Add(parameter); 

再後來,如果你需要訪問它們,你可以這樣做:

SqlParameter param = command.Parameters[0]; 

這樣,你不必惹添加範圍和一個單獨的數組的跟蹤或列表<>。