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

时间:2012-03-28 07:38:02

标签: c# datatable oledb xls

我正在将.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 个答案:

答案 0 :(得分:2)

您的选择中没有'order by'条款;因此不保证行顺序 将“order by”子句添加到MyCommand,你应该很好。