Экспорт XLS в DataTable - несортированные строки - PullRequest
0 голосов
/ 28 марта 2012

Я экспортирую файл .xls в datatable. Ниже мой код:

private DataTable ExportXlsToDt(String path)
{
    OleDbConnection MyConnection = null;
    DataSet DtSet = null;
    OleDbDataAdapter MyCommand = null;
    MyConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source='" + path + "';Extended Properties=Excel 8.0;");

    ArrayList TblName = new ArrayList();

    MyConnection.Open();
    DataTable schemaTable = MyConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
    foreach (DataRow row in schemaTable.Rows)
    {
        TblName.Add(row["TABLE_NAME"]);
    }

    MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [" + TblName[0].ToString() + "]", MyConnection);
    DtSet = new System.Data.DataSet();

    MyCommand.Fill(DtSet);
    MyCommand.FillSchema(DtSet, SchemaType.Source);

    DataTable dt = new DataTable();
    dt = DtSet.Tables[0];
    MyConnection.Close();
}

Однако строки после экспорта сортируются не так, как строки до экспорта. Пример:

Оригинал

row A

row B

row C

row D

После экспорта

row D

row C

row A

row B

Может кто-нибудь посоветовать мне это?

Спасибо-х.

1 Ответ

2 голосов
/ 28 марта 2012

у вас нет пункта 'order by' на ваш выбор;следовательно, порядок строк не гарантируется.
Добавьте условие 'order by' к MyCommand, и все будет хорошо.

...