Могу ли я повторно использовать C # SqlParameter - PullRequest
3 голосов
/ 10 июля 2009

я делаю непрерывный выбор каждые 10 секунд, поэтому я подумал, что я бы сделал несколько преждевременных оптимизаций и сохранил бы создание объектов cmd и paramater в каждом цикле

если я делаю это одним способом

public void FirstSelect() {

    // select data
    this.cmdSelectData = new SqlCommand(SQL_SELECT_DATA, conn);

    this.paramBranchId = new SqlParameter("@branch_id", 1);
    this.cmdSelectData.Parameters.Add(paramBranchId);

    // fetch data blah, blah, blah...
}

, а затем это в другом методе

public void SecondSelect() {

    this.paramBranchId.Value = 2;
   // fetch data
}

будет работать как положено, один выбор с использованием ветви 1, другой выбор с использованием ветви 2 или мне нужно

this.cmdSelectData.Parameters.Clear();
ths.cmdSelectData.Parameters.Add(new SqlParameter( // for branch 2)

}

Ответы [ 2 ]

5 голосов
/ 10 июля 2009

Да, установка значения для существующего параметра влияет на последующее выполнение команды. Это очень удобно, если вы хотите выполнить одну и ту же команду несколько раз с разными значениями для одного или нескольких параметров, без необходимости каждый раз перестраивать весь объект.

1 голос
/ 10 июля 2009

Вам нужно создать новый параметр для каждого добавляемого вами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...