将XLS导出到DataTable-未排序的行

本文关键字:排序 DataTable- XLS | 更新日期: 2023-09-27 18:29:25

我正在将.xls文件导出到数据表中。以下是我的代码:

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

有人能给我建议吗?

谢谢。

将XLS导出到DataTable-未排序的行

您的select中没有"order by"子句;因此不能保证行顺序
MyCommand中添加一个"order-by"子句,你就应该很好了。