Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > TableAdapter Fill(@Param1)


Автор: maq 29.6.2009, 15:06
Вопрос новичка в C#.
Имеется форма, при ее загрузке в TextBox-сах формы должны быть зачения полей из БД MS SQL, но выводиться только одна запись (зная значение ключевого поля). Т.е. запрос должен быть такой, например, SELECT * FROM Table WHERE t_id = 15. Задавать параметр t_id я не умею. У меня выводится SELECT * FROM Table 
Код

t_TACountries.Fill(dsCount.t_Countries);

и в TextBox-сах отображается 1-ая запись.
Как мне задат параметр?

Автор: Partizan 29.6.2009, 15:28
maq

Код

public void FillTable(int id)
{
    .....
    string commandStr = "SELECT * FROM Table WHERE t_id = " + id.ToString();
    adapter.Command = new SqlCommand(commandStr, connection);
    adapter.Fill(...);
}


Писал по памяти..возможно не скомпилится сразу...

Автор: KelTron 29.6.2009, 15:49
Если нужен именно параметр (и вообще говоря лучше чтобы это был параметр), то так:

Код

...
string commandStr = "SELECT * FROM Table WHERE t_id = @t_id";
SqlCommand cmd = new SqlCommand(commandStr, connection);
cmd.Parameters.AddWithValue("@t_id", id);

adapter.Command = cmd;
...

Автор: Moid 30.6.2009, 12:07
Можно написать метод Fill у TableAdapter в *.xsd фале:

К примеру так:

Код

SELECT * FROM Table 
WHERE (t_id = @t_id) and (t_nnn = @t_nnn)

где @t_id и @t_nnn - параметры.


И при вызове Fill нужно просто подставить значения:
Код

t_TACountries.Fill(DataTable_1, 15, "Строковый параметр");


Примерно так  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)