当前位置:编程学习 > C#/ASP.NET >>

高手请帮我看看两行代码 不是太懂

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了

所谓有图有易做图,你自己看到那个图,你自己就明白了,胜过我们更你去解释他到底是啥了 --------------------编程问答--------------------

//这句是获取数据表的结构,架构信息
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
--------------------编程问答-------------------- 2楼的,设断点自己一步步的查看,这样你会知道每一步都在执行什么,对程序的了解会更深一个层次的 --------------------编程问答-------------------- 学习学习。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,