2016-03-01 63 views
0

我正在使用Asp.net webforms開發Web應用程序。要求是根據從下拉列表中選擇的值填充gridview,我可以實現沒有問題。我想要做的是儘量減少我的代碼,所以我不必重複自己。所以我創建了一個方法,它返回一個DataTable作爲參數傳遞給該函數的查詢。在多個場景中使用一種方法

public DataTable GetData(string Query) 
{ 
//Do stuff i.e. sql reader 
    ... 
} 

一些Sql quesries將有參數,其他人不會例如

  1. SELECT TESTONE FROM MY TABLE WHERE TESTONE = @param
  2. SELECT TESTTWO FROM MY TABLE

我希望能夠調用GetData()方法與上述兩種查詢,但我無法弄清楚如何延長我的功能,以適應這兩種方案。如果有人能指導我,我會高度讚賞它。

在這種情況下會使用GetData(string Query, Dictionary<string, object> parameters)是一個矯枉過正?

+0

不,一個'Dictionary 參數'不會矯枉過正。你甚至可能會發現一個['List '](https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter(v = vs.110).aspx)更好 – Rhumborl

+0

@Rhumborl如果我使用'字符串<對象>參數'我怎樣才能調用我的方法的第一個查詢?或者如果你可以提供一個簡短的例子,是否可能 – Code

回答

0

我設法通過對我的代碼進行以下更改來解決這個問題。

public DataTable GetTrainingData(string query, params string[] parameters) 
{ 
// Do work here 
} 

我現在可以叫兩個我的查詢作爲

  1. GetTrainingData("SqlQuery")
  2. GetTrainingData("SqlQuery", parameters)

同樣的方法進一步閱讀params關鍵字herehere