Я добавил набор данных и адаптер таблицы для моего проекта C#. (Набор данных и таблица добавлены через окно DataSources) В этом запросе я получаю данные таблицы, затем фильтрую , то я буду перебирать и заполнять список.Как сделать этот запрос таблицы более эффективным
listBox1.Items.Clear();
ETPDataset.t_USR_UsersDataTable tbl = (new ETPDataset.t_USR_UsersDataTable());
ETPDatasetTableAdapters.t_USR_UsersTableAdapter tblAdap = new TestIntellisenseSql.ETPDatasetTableAdapters.t_USR_UsersTableAdapter();
tblAdap.Connection.ConnectionString = scon.ConnectionString;
tblAdap.Fill(tbl);
ETPDataset.t_USR_UsersRow[] rows2;
rows2 = (ETPDataset.t_USR_UsersRow[])tbl.Select("USR_RECORDID > 60");
foreach (ETPDataset.t_USR_UsersRow drow in rows2)
{
listBox1.Items.Add(drow.USR_UserID);
}
Это моя проблема
tblAdap.Fill(tbl);
, потому что эта строка кода будет получать все данные (проблемные для больших таблиц), как я могу это исправить? -Скорость
Нет смысла извлекать все данные из базы данных и фильтровать их в программе. Есть ли какие-либо проблемы, которые вы не можете фильтровать «USR_RECORDID> 60» в базе данных? –
После того, как вы добавили фильтр в адаптер, метод Fill() примет значение в качестве параметра, то есть Fill (USR_ID) – invert
Отредактируйте свой набор данных в дизайнере, r-щелкните таблицу данных и выберите «Настроить». В запросе вставьте свой параметр (@ID), нажмите «Готово». – invert