获取数据表的模式信息

// 获取数据表的模式信息
// SchemaTable.cs
using System;
using System.Data;
using System.Data.SqlClient;
namespace Ch12
{
    class SchemaTable
    {
        static void Main( string[] args)
        {
            string strConn = "server=.\\MSSQL2012;integrated security=true;database=Northwind;";
            string sql = "select * from employees";
            SqlConnection conn = new SqlConnection(strConn);
            try
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);
                SqlDataReader rdr = cmd.ExecuteReader();
                // 保存数据表 employees 的模式信息
                DataTable schema = rdr.GetSchemaTable();
                foreach (DataRow row in schema.Rows)
                {
                    foreach (DataColumn col in schema.Columns)                   
                        Console.WriteLine(col.ColumnName + "= " + row[col]);                   
                    Console.WriteLine( "**".PadRight(50,'*' ));
                }
                rdr.Close();
            }
            catch ( Exception ex)
            {
                Console.WriteLine( "发生错误:" + ex);
            }
            finally
            {
                conn.Close();
                Console.ReadLine();
            }
        }
    }
}
---------------------------
ColumnName= Region
ColumnOrdinal= 9
ColumnSize= 15
NumericPrecision= 255
NumericScale= 255
IsUnique= False
IsKey=
BaseServerName=
BaseCatalogName=
BaseColumnName= Region
BaseSchemaName=
BaseTableName=
DataType= System.String
AllowDBNull= True
ProviderType= 12
IsAliased=
IsExpression=
IsIdentity= False
IsAutoIncrement= False
IsRowVersion= False
IsHidden=
IsLong= False
IsReadOnly= False
ProviderSpecificDataType= System.Data.SqlTypes.SqlString
DataTypeName= nvarchar
XmlSchemaCollectionDatabase=
XmlSchemaCollectionOwningSchema=
XmlSchemaCollectionName=
UdtAssemblyQualifiedName=
NonVersionedProviderType= 12
IsColumnSet= False
**************************************************
ColumnName= PostalCode
ColumnOrdinal= 10
ColumnSize= 10
NumericPrecision= 255
NumericScale= 255
IsUnique= False
IsKey=
BaseServerName=
BaseCatalogName=
BaseColumnName= PostalCode
BaseSchemaName=
BaseTableName=
DataType= System.String
AllowDBNull= True
ProviderType= 12
IsAliased=
IsExpression=
IsIdentity= False
IsAutoIncrement= False
IsRowVersion= False
IsHidden=
IsLong= False
IsReadOnly= False
ProviderSpecificDataType= System.Data.SqlTypes.SqlString
DataTypeName= nvarchar
XmlSchemaCollectionDatabase=
XmlSchemaCollectionOwningSchema=
XmlSchemaCollectionName=
UdtAssemblyQualifiedName=
NonVersionedProviderType= 12
IsColumnSet= False
**************************************************
......


来自为知笔记(Wiz)


posted on 2013-08-22 00:55  伊利丹  阅读(241)  评论(0编辑  收藏  举报