Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > DataTable t.Select загрузка данные обратно в t


Автор: Danillab 2.6.2010, 11:50
Здравствуйте, Вопрос по DataTable.

подскажите как загрузить данные после выбора table.Select обратно в table

Код

DataTable table = new DataTable("Main");
table.Columns.Add("name");
table.Columns.Add("fname");
table.Columns.Add("phone");
table.Columns.Add("home");

for (int i = 0; i <= 30; i++)
            {
                row = table.NewRow();
                
                row["name"] = "name " + i;
                row["fname"] = "fname " + i;
                row["phone"] = "phone " + i;
                row["home"] = "home " + i;
                table.Rows.Add(row);
}

// Сортируем
DataRow[] Rows = table.Select(null,  "name");

// загрузить данные  из Rows в таблицу table, как???


Автор: AntonX 4.6.2010, 21:23
DataRow[] Rows = table.Select(null,  "name");
возвращает массив ссылок на строки, которые удовлетворяют параметрам поиска. Т.е. строки эти уже в таблице и загружать их обратно не нужно.
нужно скрыть все остальные.

тут много способов, в зависимости, что тебе нужно.

1. можно пройтись по всем строкам таблицы и проверить их на принадлежность к Rows. и дальше либо удалять либо делать невидимыми те, что не подходят.
2. можно удалить все строки из коллекции строк таблицы table.Rows.Clear(); а затем добавить только нужные table.Rows.Add(Rows);

3. если это просто задача фильтрации, то удобнее использовать BindingSource в качестве источника данных таблицы. Через него можно и фильтрацию устроить и много чего еще.

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