DataTable读取表的架构信息

来源:互联网 发布:excel自动填入数据 编辑:程序博客网 时间:2024/04/29 14:09
using System;using System.Data;using System.Data.SqlClient;namespace Northwind{    class Program    {        static void Main(string[] args)        {            SqlConnection sqlConn = null;            SqlCommand sqlCmd = null;            SqlDataReader sqlDR = null;            try            {                //创建连接对象,使用集成安全方式连接,更安全                sqlConn = new SqlConnection(@"data source=localhost;                   Integrated Security=SSPI;Initial Catalog=northwind");                //创建命令对象,参数1是存储过程名                string strSql = @"select categoryid, categoryname from categories;"                    + @"select employeeId, lastname from employees";                sqlCmd = new SqlCommand(strSql, sqlConn);                     //打开数据库                sqlConn.Open();                //执行查询,并将结果集返回给SqlDataReader                sqlDR = sqlCmd.ExecuteReader();                //返回结果集中表的架构信息                DataTable schemaTable = sqlDR.GetSchemaTable();                //遍历所有的行,直到结束                foreach (DataRow r in schemaTable.Rows)                {                    foreach (DataColumn c in schemaTable.Columns)                        Console.WriteLine(c.ColumnName + "  =  " + r[c]);                    Console.WriteLine();                }                /*                do                 {                    Console.WriteLine(@"-------------------------------");                    Console.WriteLine("{0, -15}{1,-15}", sqlDR.GetName(0),                        sqlDR.GetName(1));                    Console.WriteLine(@"-------------------------------");                    while (sqlDR.Read())                    {                        Console.WriteLine("{0, -15}${1,-15}", sqlDR.GetInt32(0),                        sqlDR.GetString(1));                    }                    Console.WriteLine();                } while (sqlDR.NextResult());                */            }            catch (System.Exception e)            {                Console.WriteLine(e.Message);            }            finally            {                //关闭SqlDataReader对象                sqlDR.Close();                //断开数据库连接                sqlConn.Close();            }        }    }}

ColumnName  =  categoryidColumnOrdinal  =  0ColumnSize  =  4NumericPrecision  =  10NumericScale  =  255IsUnique  =  FalseIsKey  =BaseServerName  =BaseCatalogName  =BaseColumnName  =  categoryidBaseSchemaName  =BaseTableName  =DataType  =  System.Int32AllowDBNull  =  FalseProviderType  =  8IsAliased  =IsExpression  =IsIdentity  =  TrueIsAutoIncrement  =  TrueIsRowVersion  =  FalseIsHidden  =IsLong  =  FalseIsReadOnly  =  TrueProviderSpecificDataType  =  System.Data.SqlTypes.SqlInt32DataTypeName  =  intXmlSchemaCollectionDatabase  =XmlSchemaCollectionOwningSchema  =XmlSchemaCollectionName  =UdtAssemblyQualifiedName  =NonVersionedProviderType  =  8IsColumnSet  =  False

ColumnName  =  categorynameColumnOrdinal  =  1ColumnSize  =  15NumericPrecision  =  255NumericScale  =  255IsUnique  =  FalseIsKey  =BaseServerName  =BaseCatalogName  =BaseColumnName  =  categorynameBaseSchemaName  =BaseTableName  =DataType  =  System.StringAllowDBNull  =  FalseProviderType  =  12IsAliased  =IsExpression  =IsIdentity  =  FalseIsAutoIncrement  =  FalseIsRowVersion  =  FalseIsHidden  =IsLong  =  FalseIsReadOnly  =  FalseProviderSpecificDataType  =  System.Data.SqlTypes.SqlStringDataTypeName  =  nvarcharXmlSchemaCollectionDatabase  =XmlSchemaCollectionOwningSchema  =XmlSchemaCollectionName  =UdtAssemblyQualifiedName  =NonVersionedProviderType  =  12IsColumnSet  =  False

请按任意键继续. . .


原创粉丝点击