高手请帮我看看两行代码 不是太懂
OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sExcelFile + ";" + "Extended Properties=Excel 8.0;");objConn.Open();
DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
这个跟实例化一个table有什么区别呢
string tableName = schemaTable.Rows[0][2].ToString().Trim();//获取 Excel 的表名,默认值是sheet1
为什么第一行第二列会是获取的表名呢
--------------------编程问答-------------------- 实例化一个table,并不一定填写数据,而且你还需要把table的结构定义好
而你给的代码中,不经实例化了,还自动生成了结构,并填充了数据。 --------------------编程问答-------------------- 第一段是获取数据表结构描述,返回用datatable封装的表结构(只有结构,没有表数据)
至于第二列的问题,我建议你自己下个断点,然后鼠标指向dt对象上,下面会有一个放大镜图标,点击放大镜图标自己去看vs到底给你生成了一个什么样的表就ok了
所谓有图有易做图,你自己看到那个图,你自己就明白了,胜过我们更你去解释他到底是啥了 --------------------编程问答--------------------
--------------------编程问答-------------------- 2楼的,设断点自己一步步的查看,这样你会知道每一步都在执行什么,对程序的了解会更深一个层次的 --------------------编程问答-------------------- 学习学习。
//这句是获取数据表的结构,架构信息
DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
/*返回的表结构是这样的:
*TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE TABLE_GUID DESCRIPTION TABLE_PROPID DATA_CREATED DATA_MODIFIED
*看清楚这个表结构你就知道下面这句为什么读取的是表名了.
*/
string tableName = schemaTable.Rows[0][2].ToString().Trim();//获取 Excel 的表名,默认值是sheet1
补充:.NET技术 , ASP.NET