程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#獲取Excel架構信息的方法

C#獲取Excel架構信息的方法

編輯:C#入門知識

使用OleDbConnection.GetOleDbSchemaTable方法可以獲取待檢索數據源的架構信息,常使用方法如下:

DataTable Schemadt = OleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new[] { null, null, null, "table" }); 

查看Schemadt內數據方法

for (int i = 0; i < Schemadt.Rows.Count; i++)

 {

Console.WriteLine("SheetName=" + Schemadt.Rows[i]["TABLE_NAME"].ToString());

 } 

 

注意:SqlClient.SqlConnection 對象沒有與GetOleDbSchemaTable 等價的方法。

 

下面解釋一下GetOleDbSchemaTable 這個方法 

OLE DB .NET 數據提供程序使用 OleDbConnection 對象的 GetOleDbSchemaTable 方法展示架構信息。GetOleDbSchemaTable 返回填充了架構信息的 DataTable
    GetOleDbSchemaTable 的第一個參數是架構參數,它是一個 OleDbSchemaGuid 類型的標識,指定了要返回的架構信息的類型(如表、列和主鍵)。第二個參數是一個限制對象數組,對 DataTable 架構中返回的行進行過濾(例如,您可以指定對表的名稱、類型、所有者和/或架構的限制)。


OleDbSchemaGuid 成員
OleDbSchemaGuid 參數指定 GetOleDbSchemaTable 方法要返回的架構表的類型。 
OleDbSchemaGuid 成員主要包括:

• 列 • 外鍵 • 索引 • 主鍵 • 表 • 視圖

 

限制

    限制是一個過濾值對象數組,每個元素對應於結果 DataTable 中的一個 DataColumnOleDbSchemaGuid 參數決定了相應的限制。例如,在指定表的 OleDbSchemaGuid 時,限制數組如下所示:

{TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE}

     在傳遞限制數組的值時,對於不包含值的數組元素使用 Visual C# .NET 的 null 關鍵字。例如,如果要檢索表的架構,使用OleDbSchemaGuid.Tables。但是,如果指定了表,也將返回別名、同義詞、視圖和其他相關對象。因此,如果您希望過濾掉除表以外的所有其他對象,請對 TABLE_TYPE 使用 TABLE 限制。可以對 TABLE_CATALOG、TABLE_SCHEMA 和 TABLE_NAME 使用 null,因為您不過濾這些對象:schemaTable = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
new Object[] {null, null, null, "TABLE"});

 

返回的數據表

    每個符合 OleDbSchemaGuid 類型和限制規則的對象都對應於 GetOleDbSchemaTable 方法返回的 DataTable 中的一行。每個限制列對應於DataTable 的一列,後面是基於 OleDbSchemaGuid 字段的其他架構信息。
例如,當您使用以下代碼時,返回的 DataTable 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved