2016-03-01 3 views
0

Я разрабатываю веб-приложение с использованием веб-форм Asp.net. Требование состоит в том, чтобы заполнить gridview на основе выбранного значения из раскрывающегося списка, которое я не могу решить. То, что я пытаюсь сделать, сводит к минимуму мой код, поэтому мне не нужно повторять сам. Поэтому я создал метод, который возвращает DataTable из запроса, который передается в качестве параметра этой функции.Использование одного метода для нескольких сценариев

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

Некоторые из вопросов Sql будут иметь параметры, а другие - не будут.

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

Я хочу, чтобы иметь возможность вызвать метод GetData() с обоих вышеуказанных запросов, но я не могу понять, как выразить свою функцию, чтобы приспособить для обоих сценариев. Если кто-то может вести меня, я был бы очень признателен.

Будет ли использовать GetData(string Query, Dictionary<string, object> parameters) в избытке?

+0

Нет, 'Словарь <строка, объект> параметры' не будет излишним. Вы даже можете найти ['List '] (https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter (v = vs.110) .aspx), чтобы быть четным лучше – Rhumborl

+0

@Rhumborl Если я использую 'Dictionary parameters', как бы я вызвал мой метод для первого запроса? или было бы возможно, если вы можете предоставить короткий пример, пожалуйста – Code

ответ

0

Мне удалось это выяснить, внеся следующие изменения в мой код.

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

теперь я могу назвать тот же метод, как для моих запросов как

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

Далее чтение на params ключевое слово here и here

Смежные вопросы