C # Изменение порядка таблиц в наборе данных - PullRequest
2 голосов
/ 15 сентября 2009

Я создаю пользовательский набор данных, который передаю компоненту в черной рамке. Набор данных обычно состоит из 5-6 таблиц (с уникальными именами, назначенными мной). Компонент берет набор данных и создает раскрывающееся поле со списком на основе имен таблиц. Однако мне нужно изменить порядок таблиц в наборе данных. Мне нужно сделать это, поэтому я сначала предлагаю пользователю соответствующий выбор в раскрывающемся списке (в зависимости от того, в каком разделе приложения они находятся). Так, например ... если они находятся в «Разделе А», то это первое имя таблицы, отображаемое в раскрывающемся списке ... если пользователь переходит в «Раздел F», то это то, что отображается в списке первым. ... и так далее.

Более интенсивный код - это, конечно, просто изменить порядок, в котором я добавляю таблицы в набор данных. Это сработает, но я подумал, что должен быть какой-то способ сделать это более элегантно и с меньшим количеством кода.

Я работаю в C # с фреймворком 3.5.

Ответы [ 2 ]

2 голосов
/ 15 сентября 2009

Помните, что наборы данных и их содержимое хранятся в куче, поэтому вы можете иметь объект DataTable в нескольких местах в наборе данных.

Просто создайте свой DataSet с фиктивной таблицей DataTable в нулевой позиции. Затем, в зависимости от того, в каком разделе они находятся, вы помещаете соответствующую таблицу в нулевое положение. Имя вашей таблицы будет дважды отображаться в вашем DropDownBox, один раз как «по умолчанию», а затем снова в соответствующем контексте и порядке ниже с другими таблицами.

public class ThisThing
{
    private DataSet myDS = new DataSet();

    //Populate your DataSet as normal

    public DataSet ChangeLocation(int CurrentSectionNumber)
    {    
        myDS.Table[0] = myDS.Table[CurrentSectionNumber]
    }
}
0 голосов
/ 15 сентября 2009

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

...