SqlDataReader.GetSchemaTable
Ado.net 獲取數據庫元數據信息
最近一直和元數據打交道
SqlDataReader.GetSchemaTable 方法
一定要創建一個可用的reader。。
不要通過datatable.createreader.getshematable---這樣獲取出來的信息是不完全的。
簡單copy了一下msdn的東西,做一個記錄
DataReader 列 | 說明 |
ColumnName | 列的名稱;它可能不唯一。如果無法確定該名稱,則返回空值。此名稱始終反映最近對當前視圖或命令文本中的列進行的重命名。 |
ColumnOrdinal | 列的序號。它對于行的書簽列(如果有的話)為零。其他列從一開始編號。該列不能包含空值。 |
ColumnSize | 列中值的最大可能長度。對于采用固定長度數據類型的列,它是該數據類型的大小。對于存儲在 SQL Server 數據庫中的?nvarchar(MAX)、varchar(MAX)?和varbinary(MAX)?列,最大大小為 2GB。如果這些列以文件形式存儲并訪問,則對最大大小的限制由文件系統設定。在連接字符串中使用?Type System Version?關鍵字時,該值會更改。對于新的類型,它們表示為下層類型。對于?nvarchar?,MAX 數據類型返回正常的 4k,而對于?varchar,則為 8000。有關更多信息,請參見"SQL Server 聯機叢書"中的"Transact-SQL 參考"。 |
NumericPrecision | 如果?ProviderType?是數值數據類型,則它是列的最大精度。精度取決于列的定義。如果?ProviderType?不是數值數據類型,則它為空值。 |
NumericScale | 如果?ProviderType?是 DBTYPE_DECIMAL 或 DBTYPE_NUMERIC,則為小數點右側的位數。否則,它為空值。 |
IsUnique | 只有對于?timestamp?列才為?true,而對于其他所有列,為?false。 |
IsKey | true:此列是行集合中合起來可唯一地標識該行的一組列中的一列。IsKey?設置為true?的一組列必須唯一地標識行集合中的一行。不要求此列集是最小列集。這組列可以從基表主鍵、唯一約束或唯一索引生成。 false:唯一地標識該行時不需要此列。 |
BaseServerName | SqlDataReader?使用的 Microsoft SQL Server 實例的名稱。 |
BaseCatalogName | 包含列的數據存儲區中的目錄的名稱。如果不能確定基目錄名稱,則為 NULL。該列的默認值為空值。 |
BaseColumnName | 數據存儲區中列的名稱。如果使用別名,它可能不同于在 ColumnName 列中返回的列名稱。如果無法確定基列名稱,或者如果行集合列從數據存儲區中的列導出但不等于該列,則為空值。該列的默認值為空值。 |
BaseSchemaName | 包含列的數據存儲區中的架構的名稱。如果無法確定基架構名稱,則為空值。該列的默認值為空值。 |
BaseTableName | 包含列的數據存儲區中的表或視圖的名稱。如果無法確定基表名稱,則為空值。該列的默認值為空值。 |
DataType | 映射到列的 .NET Framework 類型。 |
AllowDBNull | 如果使用者可以將該列設置為空值,或者如果提供程序不能確定使用者是否可以將該列設置為空值,則設置該值。否則,不設置該值。即使列無法設置為空值,它仍可能包含空值。 |
ProviderType | 列的數據類型的指示符。如果不同行的列數據類型不同,則它必須為 Object。該列不能包含空值。 |
IsAliased | 如果列名稱為別名,則為?true;否則為?false。 |
IsExpression | 如果此列為表達式,則為?true;否則為?false。 |
IsIdentity | 如果此列為標識列,則為?true;否則為?false。 |
IsAutoIncrement | true:該列以固定的增量向新行賦值。 false:該列不以固定的增量向新行賦值。該列的默認值為?false。 |
IsRowVersion | 如果列包含無法寫入的不變的行標識符,并且除了標識行外沒有其他有意義的值,則設置該值。 |
IsHidden | 如果列是隱藏的,則為?true;否則為?false。 |
IsLong | 如果列包含二進制長對象 (BLOB)(它包含非常長的數據),則設置該值。非常長的數據的定義針對于提供程序。 |
IsReadOnly | 如果不能修改該列,則為?true;否則為?false。 |
ProviderSpecificDataType | 根據連接字符串中的?Type System Version?關鍵字,返回列的提供程序特定的數據類型。 |
DataTypeName | 返回表示指定列的數據類型的字符串。 |
XmlSchemaCollectionDataBase | 此 XML 實例的架構集合所在的數據庫的名稱(如果該行包含有關 XML 列的信息)。如果在當前數據庫中定義了該集合,則此值為 空引用(在 Visual Basic 中為 Nothing)(在 Visual Basic 中為?Nothing)。如果沒有架構集合,則它也為空,這時?XmlSchemaCollectionName?和XmlSchemaCollectionOwningSchema?列也為空。 |
XmlSchemaCollectionOwningSchema | 此 XML 實例的架構集合所在的所屬關系架構(如果該行包含有關 XML 列的信息)。如果在當前數據庫中定義了該集合,則此值為 空引用(在 Visual Basic 中為 Nothing)(在 Visual Basic 中為?Nothing)。如果沒有架構集合,則它也為空,這時?XmlSchemaCollectionDatabase?和?XmlSchemaCollectionName?列也為空。 |
XmlSchemaCollectionName | 此 XML 實例的架構集合的名稱(如果該行包含有關 XML 列的信息)。如果沒有關聯的架構集合,則此值為 空引用(在 Visual Basic 中為 Nothing)(在 Visual Basic 中為?Nothing)。如果此值為空,則?XmlSchemaCollectionDatabase?和XmlSchemaCollectionOwningSchema?列也為空。 |
轉載于:https://www.cnblogs.com/jianglai11/archive/2010/07/23/1783874.html
總結
以上是生活随笔為你收集整理的SqlDataReader.GetSchemaTable的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十条不错的编程观点(转载)
- 下一篇: ASP超级链接和HTML函数正则表达式