C # сортировка строк dataTable с использованием интерфейса - PullRequest
0 голосов
/ 16 марта 2012

Вот мой код того, как я получаю данные из базы данных и добавляю их в именованные данные DataTable. Я должен отсортировать всю эту таблицу по данным строки «Spelionu skaicius», используя интерфейс (все чаще), но я понятия не имеюкак это понять, может кто-то помочь с этим?я знаю, что есть много способов отсортировать это, но я должен сделать это, используя интерфейс.

using (FbConnection fbBD = new FbConnection(csb.ToString()))
{
    fbBD.Open();
    FbTransaction transact = fbBD.BeginTransaction();
    FbCommand sqlReq =
        new FbCommand("SELECT vardas,pavarde,sp_skaicius,spelioniu_sk FROM zaidejai WHERE atspetas='Taip'", fbBD, transact);
    using (FbDataReader r = sqlReq.ExecuteReader())
    {
        while (r.Read())
        {
            DataRow rw = dt.NewRow();
            rw["Vardas"] = r.GetString(0);
            rw["Pavarde"] = r.GetString(1);
            rw["Skaicius"] = r.GetValue(2);
            rw["Spelionu skaicius"] = r.GetValue(3);
            data.Rows.Add(rw);
        }
    }
    transact.Commit();
    fbBD.Close();
}

PS извините за мой английский

Ответы [ 2 ]

1 голос
/ 17 марта 2012

Лучше всего, если вы позволите базе данных сортировать данные, поэтому вместо этого я бы изменил ваш выбор следующим образом:

    SELECT vardas,pavarde,sp_skaicius,spelioniu_sk 
    FROM zaidejai 
    WHERE atspetas='Taip'
    ORDER BY spelioniu_sk

Обратите внимание, что я использовал spelioniu_sk, потому что это 4-й столбец, указанный в вашем выборе, который затемотображается в Spelionu skaicius в вашем определении данных

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

data= data.DefaultView.Sort = "`Spelionu skaicius` ASC";

ИЛИ

data = data.DefaultView.Sort = "`Spelionu skaicius` DESC";

В зависимости от порядка сортировки.

Примечание: я не уверен, будет ли работать вышеупомянутое выражение сортировкихорошо.Поскольку вы решили назвать свой столбец с пробелом посередине, вам может понадобиться заключить 2 слова в обратные кавычки (как я делал выше) или в квадратные скобки (например, [Spelionu skaicius] ASC)

1 голос
/ 17 марта 2012

используйте свойство DefaultView с датируемыми данными:

data.DefaultView.Sort = "Spelionu skaicius";

, после чего вы можете работать с данными.* <- EDIT ->

Выше для регулярной сортировки.Если вы хотите использовать IComparable, вам придется использовать пользовательские предложения вместо DataTable. Вот объяснение того, как.

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