簡體   English   中英

如何創建數組 DbParameter[]

[英]How to create array DbParameter[]

手冊說 ExecuteScalar 方法應該像這樣使用:

public T ExecuteScalar<T>( 
   string commandText,
   CommandType commandType,
   params DbParameter[] parameters
)

但是如何創建該參數數組? 我需要提供我的存儲過程 2 參數。

  • DbParameter 是一個抽象的 class。
  • 由於無法從用法中推斷出類型 T,因此您必須指定它。
  • 雖然您可以只傳遞可變數量的參數而不創建數組,但如果您動態創建可變數量的參數,那么數組是您的朋友。

     var parameters = new[]{ new SqlParameter(){ ParameterName="foo", Value="hello" }, new SqlParameter(){ ParameterName="bar", Value="World" } }; x.ExecuteScalar<int>(commandText, commandType, parameters);

parameters參數具有params關鍵字 這意味着您不必顯式創建數組,但可以將可變數量的 arguments 傳遞給方法:

x.ExecuteScalar(commandText, commandType, parameter1, parameter2);

但是,如果需要,可以顯式創建數組並將其傳遞給方法,如下所示:

DbParameter[] parameters = new DbParameter[] { parameter1, parameter2 };

x.ExecuteScalar(commandText, commandType, parameters);

DbParameter 是一個抽象的 class - 但您可以實例化派生類型。

如果您使用的是 Sql 服務器,它是 SqlParameter:

 DbParameter[] parameters = new DbParameter[2]; 
 parameters[0]  = new SqlParameter("param1",  123456);
 parameters[1]  = new SqlParameter("param2",  "abcdef");

params 關鍵字意味着您可以指定不同數量的參數(從 1 到 [幾乎] 無窮大)。

您可以像這樣調用該方法: ExecuteScalar<SomeType>("Command,". CommandType,SomeCommandType, dbParameter1; dbParameter2);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM