我正在将.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
有人可以就此提出建议吗?
感谢的。
答案 0 :(得分:2)
您的选择中没有'order by'条款;因此不保证行顺序
将“order by”子句添加到MyCommand
,你应该很好。