亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

GetSchemaTable

2024-07-21 02:52:37
字體:
來源:轉載
供稿:網友

當我們使用SqlDataReader的GetSchemaTable方法是,利用下列代碼打印表的結構

DataTable tb=reader.GetSchemaTable ();          foreach (DataRow dtrow in tb.Rows ){      foreach(DataColumn dtcol in tb.Columns ){       Console.Write ("/t"+ dtcol.ColumnName+"="+dtrow[dtcol] );      }      Console.Write ("/n");     } 

注意,該方法返回的并不是我們操作的數據表,而是一個描述列的元數據的一個結構表,類似下面的:

  列名稱列序號 列長度列類型(...) 
 第一列    
 第二列    

就是說返回的 table對象的 ROws屬性 是我們操作表的所有列的集合,而COLUMNS屬性是所有列特征的集合

這些列特征,稱為列的元數據,有下列一些字段

對于 GetSchemaTable 方法,將按以下順序返回關于每個列的元數據:

DataReader 列說明
ColumnName列的名稱;它可能不唯一。如果無法確定該名稱,則返回空值。此名稱始終反映最近對當前視圖或命令文本中的列進行的重命名。
ColumnOrdinal列的序號。它對于行的書簽列(如果有的話)為零。其他列從一開始編號。該列不能包含空值。
ColumnSize列中值的最大可能長度。對于采用固定長度數據類型的列,它是該數據類型的大小。
NumericPRecision如果 ProviderType 是數值數據類型,則它是列的最大精度。精度取決于列的定義。如果 ProviderType 不是數值數據類型,則它為空值。
NumericScale如果 ProviderType 是 DBTYPE_DECIMAL 或 DBTYPE_NUMERIC,則為小數點右側的位數。否則,它為空值。
IsUniquetrue:基表(BaseTableName 返回的表)中的任何兩行在該列中都不能有相同的值。如果此列本身為一個鍵,或如果有一個僅應用于該列的 UNIQUE 類型約束,那么 IsUnique 一定為 true。false:在基表中該列可以包含重復值。該列的默認值為 false。
IsKeytrue:此列是行集合中合起來可唯一地標識該行的一組列中的一列。IsKey 設置為 true 的一組列必須唯一地標識行集合中的一個行。不要求此列集是最小列集。這組列可以從基表主鍵、唯一約束或唯一索引生成。false:唯一地標識該行時不需要此列。
BaseServerNameSqlDataReader 使用的 Microsoft SQL Server 實例的名稱。
BaseCatalogName包含列的數據存儲區中的目錄的名稱。如果不能確定基目錄名稱,則為 NULL。該列的默認值為空值。
BaseColumnName數據存儲區中列的名稱。如果使用別名,它可能不同于在 ColumnName 列中返回的列名稱。如果無法確定基列名稱,或者如果行集合列從數據存儲區中的列導出但不等于該列,則為空值。該列的默認值為空值。
BaseSchemaName包含列的數據存儲區中的架構的名稱。如果無法確定基架構名稱,則為空值。該列的默認值為空值。
BaseTableName包含列的數據存儲區中的表或視圖的名稱。如果無法確定基表名稱,則為空值。該列的默認值為空值。
DataType映射到列的 .Net Framework 類型。
AllowDBNull如果使用者可以將此列設置為空值,或者如果提供者不能確定使用者是否可以將此列設置為空值,則設置該值。否則,不設置該值。即使列無法設置為空值,它仍可能包含空值。
ProviderType列的數據類型的指示符。如果不同行的列數據類型不同,則它必須為 Object。該列不能包含空值。
IsAliased如果列名稱為別名,則為 true;否則為 false。
IsExpression如果此列為表達式,則為 true;否則為 false。
IsIdentity如果此列為標識列,則為 true;否則為 false
IsAutoIncrementtrue:該列以固定的增量向新行賦值。false:該列不以固定的增量向新行賦值。該列的默認值為 false。
IsRowVersion如果列包含無法寫入的不變的行標識符,并且除了標識行外沒有其他有意義的值,則設置該值。
IsHidden如果列是隱藏的,則為 true;否則為 false
IsLong如果列包含二進制長對象 (BLOB)(它包含非常長的數據),則設置該值。非常長的數據的定義針對于提供程序。
IsReadOnly如果不能修改該列,則為 true;否則為 false

注意   若要確保元數據列返回正確的信息,必須調用 behavior 參數設置為 KeyInfo 的  

 

==============例子==========================================

public   DataTable   GetTable(IDataReader   _reader)     {     DataTable   dataTable1   =   _reader.GetSchemaTable();     DataTable   dataTable2   =   new   DataTable();     string[]   arrayList   =   new   string[dataTable1.Rows.Count];     for   (int   i   =   0;   i   <   dataTable1.Rows.Count;   i++)     {     DataColumn   dataColumn   =   new   DataColumn();     if   (!dataTable2.Columns.Contains(dataTable1.Rows[i]["ColumnName"].ToString()))     {     dataColumn.ColumnName   =   dataTable1.Rows[i]["ColumnName"].ToString();     dataColumn.Unique   =   Convert.ToBoolean(dataTable1.Rows[i]["IsUnique"]);     dataColumn.AllowDBNull   =   Convert.ToBoolean(dataTable1.Rows[i]["AllowDBNull"]);     dataColumn.ReadOnly   =   Convert.ToBoolean(dataTable1.Rows[i]["IsReadOnly"]);     dataColumn.DataType   =   (Type)dataTable1.Rows[i]["DataType"];     arrayList[i]   =dataColumn.ColumnName;     dataTable2.Columns.Add(dataColumn);     }     }     dataTable2.BeginLoadData();     while   (_reader.Read())     {     DataRow   dataRow   =   dataTable2.NewRow();     for   (int   j   =   0;   j   <   arrayList.Length   ;   j++)     {     dataRow[arrayList[j]]   =   _reader[arrayList[j]];     }     dataTable2.Rows.Add(dataRow);     }     _reader.Close();     dataTable2.EndLoadData();     return   dataTable2;     }   


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情一区二区久久久| 日韩av电影免费观看高清| 亚洲aa中文字幕| 亚洲少妇激情视频| 97精品一区二区视频在线观看| 日韩av影视在线| 色偷偷噜噜噜亚洲男人| 精品久久久一区| 操日韩av在线电影| 国产精品亚洲激情| 日韩欧美999| 午夜欧美不卡精品aaaaa| 欧美在线视频网| 欧美电影在线免费观看网站| 97在线视频免费看| 欧美福利视频网站| 在线一区二区日韩| 国产男人精品视频| 亚洲精品一区二区三区婷婷月| 国产精品美女久久| 国产精品成人aaaaa网站| 欧美精品18videosex性欧美| 亚洲人成网7777777国产| 最近2019年日本中文免费字幕| 久久伊人免费视频| 国产一区二区三区欧美| 久久精品成人欧美大片古装| 久久亚洲电影天堂| 在线亚洲午夜片av大片| 国产日韩精品一区二区| 国产精品三级在线| 欧美日韩国产综合视频在线观看中文| 欧美高清不卡在线| 日韩av在线最新| 情事1991在线| 欧美国产精品人人做人人爱| 91网站免费观看| 日韩美女在线观看一区| 91免费综合在线| 日韩av电影国产| 欧美日韩国产第一页| 丝袜亚洲另类欧美重口| 麻豆国产va免费精品高清在线| 亚洲精品一区久久久久久| 欧美大片在线看免费观看| 国产欧美一区二区三区四区| 国产成人啪精品视频免费网| 欧美激情第1页| 欧美激情视频在线免费观看 欧美视频免费一| 午夜精品福利电影| 亚洲国产福利在线| 中文在线资源观看视频网站免费不卡| 成人免费大片黄在线播放| 97在线精品国自产拍中文| 蜜臀久久99精品久久久无需会员| 91免费精品视频| 精品中文字幕久久久久久| 欧美性xxxxx极品娇小| 中文字幕在线成人| 成人中心免费视频| 欧美福利在线观看| 性色av一区二区三区| 亚洲精品v欧美精品v日韩精品| 亚洲色图av在线| 色噜噜久久综合伊人一本| 国产精品pans私拍| 另类视频在线观看| 欧美插天视频在线播放| 亚洲国产精品免费| 精品国产一区二区三区久久久狼| 亚洲精品一区在线观看香蕉| 日韩在线视频观看| 国产玖玖精品视频| 日韩网站在线观看| 在线电影av不卡网址| 国产一区二区三区视频在线观看| 久久久久中文字幕| 欧美精品在线播放| 国产亚洲欧美aaaa| 在线精品视频视频中文字幕| 国产精品吴梦梦| 国产精品 欧美在线| 欧美主播福利视频| 日韩精品极品毛片系列视频| 日韩精品久久久久| www.久久色.com| 亚州精品天堂中文字幕| 亚洲精品理论电影| 中文字幕9999| 精品视频偷偷看在线观看| 5278欧美一区二区三区| 午夜精品一区二区三区在线视| 亚洲精品中文字| 欧美在线性爱视频| 91精品国产高清自在线看超| 亚洲欧洲黄色网| 国产精品九九九| 97在线精品视频| 亚洲成av人乱码色午夜| 精品毛片三在线观看| 日韩激情片免费| 亚洲综合精品伊人久久| 欧美日韩激情视频| 日韩电影免费在线观看中文字幕| 日本高清视频一区| 欧美最猛黑人xxxx黑人猛叫黄| 欧美另类99xxxxx| 精品国产福利在线| 日韩av男人的天堂| 中文字幕亚洲图片| 欧美大尺度激情区在线播放| 亚洲在线免费视频| 国产日韩欧美91| 亚洲免费小视频| 国产69久久精品成人看| 国产欧美日韩91| 日韩欧美中文字幕在线播放| 91av视频导航| 国产精品69久久| 欧美怡春院一区二区三区| 欧美日韩亚洲精品一区二区三区| 久久久久免费精品国产| 国产日韩中文在线| 国产精品视频公开费视频| 国产精品永久在线| 日韩在线免费av| 青青精品视频播放| 欧美日韩国产999| 中文字幕亚洲激情| 精品国内自产拍在线观看| 亚洲一级黄色av| 91九色国产视频| 成人免费网站在线看| 亚洲已满18点击进入在线看片| 国产精品一区二区三区久久久| 中文字幕日韩免费视频| 亚洲精品久久久一区二区三区| 亚洲天堂开心观看| 91色p视频在线| 琪琪第一精品导航| 色综合久久天天综线观看| 日韩av在线影院| 国产欧亚日韩视频| 精品无人国产偷自产在线| 国外视频精品毛片| 国产精品视频中文字幕91| 精品国产乱码久久久久久婷婷| 成人亚洲欧美一区二区三区| 国产激情视频一区| 精品亚洲精品福利线在观看| 亚洲国产精品高清久久久| 日韩欧美综合在线视频| 久99九色视频在线观看| 欧美丰满老妇厨房牲生活| 97在线观看视频| 欧美亚洲成人精品| 欧美激情视频在线免费观看 欧美视频免费一| 欧美日韩午夜视频在线观看| 日韩a**站在线观看| 欧美成人手机在线| 久久这里有精品视频| 中文字幕亚洲欧美在线| 久久精品精品电影网| 国产精品你懂得|