Я довольно новичок в C#, и я пытаюсь связать свою базу данных Access с программой и манипулировать ею, а затем записать ее в текстовый файл.Сортировка DataTable по определенному столбцу, а не первичному ключу
Однако мои данные в настоящее время отсортированы по идентификатору (который является основным ключом). Я хотел бы отсортировать его на основе Last Name, а затем выполнить манипуляции, потому что, когда я использую foreach (DataRow drr in dra), строки извлекаются в порядке идентификаторов.
[dra-> Ряды данных]
Я хотел бы получить доступ строки после того, как они были отсортированы, но я не уверен, как это сделать. Ниже приведен мой код.
OleDbCommand myAccessCommand = new OleDbCommand(strAccessSelect, myAccessConn11);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand);
myAccessConn11.Open();
myDataAdapter.Fill(myDataSet, "Personal_Data");
myAccessConn11.Close();
DataTableCollection dta = myDataSet.Tables;
DataRowCollection dra = myDataSet.Tables["Personal_Data"].Rows;
foreach (DataRow drr in dra)
{
*Manipulation*
}
Я пробовал использовать myDataSet.Tables["Personal_Data"].DefaultView.Sort = "LastName DESC";
, но это не сработало.
Есть ли другой способ, с помощью которого я могу сортировать строки в таблице, прежде чем обращаться к ним?
Спасибо заранее!
Является ли 'strAccessSelect' sql для доступа к вашим данным? Сделайте заказ там. – Ric
После применения сортировки по умолчанию вам необходимо вызвать .ToTable(), чтобы вернуть результаты с примененным DefaultView. –
Я раньше пробовал ответить, но я получал исключение, потому что моя колонка была помечена как «Фамилия». Теперь я удалил пространство, чтобы попробовать, и это действительно сработало. Это действительно простое решение, но я не был уверен в том, как мне пришлось обрабатывать это исключение в String strAccessSelect. @ Ric- Да, это запрос sql, который я использую. Это выбор. –