DataTable读取表的架构信息

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  =  categoryid
ColumnOrdinal  =  0
ColumnSize  =  4
NumericPrecision  =  10
NumericScale  =  255
IsUnique  =  False
IsKey  =
BaseServerName  =
BaseCatalogName  =
BaseColumnName  =  categoryid
BaseSchemaName  =
BaseTableName  =
DataType  =  System.Int32
AllowDBNull  =  False
ProviderType  =  8
IsAliased  =
IsExpression  =
IsIdentity  =  True
IsAutoIncrement  =  True
IsRowVersion  =  False
IsHidden  =
IsLong  =  False
IsReadOnly  =  True
ProviderSpecificDataType  =  System.Data.SqlTypes.SqlInt32
DataTypeName  =  int
XmlSchemaCollectionDatabase  =
XmlSchemaCollectionOwningSchema  =
XmlSchemaCollectionName  =
UdtAssemblyQualifiedName  =
NonVersionedProviderType  =  8
IsColumnSet  =  False

ColumnName  =  categoryname
ColumnOrdinal  =  1
ColumnSize  =  15
NumericPrecision  =  255
NumericScale  =  255
IsUnique  =  False
IsKey  =
BaseServerName  =
BaseCatalogName  =
BaseColumnName  =  categoryname
BaseSchemaName  =
BaseTableName  =
DataType  =  System.String
AllowDBNull  =  False
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

请按任意键继续. . .

时间: 2024-12-24 22:14:47

DataTable读取表的架构信息的相关文章

使用Ado.net获取数据库架构信息

ado|架构|数据|数据库 使用Ado.net获取数据库架构信息 秋 枫 2004-7-3 在开发的时候有时需要获取数据库架构信息来得到数据库的一些其他信息,比如存储过程.视图.表.字段的类型.备注说明等.通过OleDb.NET数据提供程序可以比较简洁的实现这一点. 一.OleDbConnection的GetOleDbSchemaTable方法 在Ado.net的对象模型的该对象充当了与数据源之间的连接,通过Connection对象来连接数据库或者从数据库断开以释放宝贵的资源.这里我们需要用到的

OLE DB取得数据库的架构信息

架构|数据|数据库 关于如何取得数据库架构信息,对于取得SQL Server和Oracal的数据库结构可能比较简单,方法也比较多. 这里整理了一个对于所有能用ADO.Net链接的数据库(比如Access,db4格式的dbf自由表等)都通用的方法 1.首先就是链接各种数据库的链接字符串,都是用ADO.Net,命名空间是:using System.Data.OleDb; 用几种数据库举个例子,需要其他的数据库链接可以到这里查:http://www.connectionstrings.com/ 但要是

jsp mysql-jsp页面如何实现一个用mysql创建的表中的信息

问题描述 jsp页面如何实现一个用mysql创建的表中的信息 这是我的jsp界面 <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> My JSP 用户名: 密 码 </body> </html> 而且我的数据库也连接上了,连接代码放在src/com.ming.java/DB类中,我在数据库中还建了一张表格userinfo

如何获得一个表的结构信息

如何获得一个表的结构信息 hbzxf(阿好)http://www.cnblogs.com/HBZXF 最近项目中需要使用ASP.NET制作自定义查询功能,根据表的字段名称与条件建立不同的查询语句,这就需要知道如何通过ADO.NET把一个表的结构显示出来,并绑定到需要显示的控件上,其实ADO.NET已经提供了相应的函数来做到这一点,下面通过详细的代码实例来察看结果. 由于本人通过使用Webservice来返回数据的结果,便制作了GetTableSchema(string sqlStr)函数,详细代

web-数据库数据读取问题 如何输入信息后读取对应的信息

问题描述 数据库数据读取问题 如何输入信息后读取对应的信息 我是新手..用C#制作WEB网页 连接了数据库 数据库中有两个列 一列是姓名一列是成绩 网页需要实现的是用户输入姓名 系统显示出成绩 可我只会整个表读取 不知道怎么输入姓名后读取相应的成绩 求大神 解决方案 关于利用opendatasource 读取excel文件中的数据问题以及更新数据库中对应数据的问题---------------------- 解决方案二: 急求回答..网上看用reader.GetOrdinal()也不行..输入名

订单表里添加商品id-怎么在订单表添加商品信息

问题描述 怎么在订单表添加商品信息 一个订单可以有多个商品那么怎么在点单表里添加多个商品的信息或id 解决方案 一般是用两张表,表一主要存订单号等信息,表二存详细的商品信息 解决方案二: 可以再增加一个订单明细表,里面保存订单对应的商品

获取MYSQL数据库和表的有关信息

   3.5 获取数据库和表的有关信息    MySQL提供了几条获取数据库和表中信息的语句.这些语句对于了解数据库的内容及了解自己表的结构很有帮助.还可以将它们作为使用ALTER TABLE 的一种辅助手段:能够知道当前列是如何定义的,计划出怎样对列进行更改会更为容易.SHOW 语句可用来获取数据库和表的几个方面的信息,它有如下用法:列表">    DESCRIBE tbl_name 和EXPLAIN tbl_name 语句与SHOW COLUMNS FROM tbl_name功能相同.

Delphi中建立指定大小字体和读取该字体点阵信息的函数

由于要控制硬件,需要把矢量的汉字转化为点阵信息写入eprom或在液晶屏上 显示,因此用Delphi写了如下的函数,可以把指定的一个汉字(两个字符)转化 为点阵信息保存到文件,每个点对应一个位,有文字信息该位为1,否则为0. 目前该函数可以生成指定的大小汉字并读取成点阵字模信息保存到文件. 如ConvertToMatrix(Pchar('北'),6,18,'Font.dat')将生成12*18点阵文件 Font.dat,其中保存汉字'北'的字模.文件格式是从上到下,先行 后列,如下图,第一行保存0

php读取目录所有文件信息dir示例

 这篇文章主要介绍了php读取目录所有文件信息dir实现代码,需要的朋友可以参考下 代码如下: <?php  set_time_limit(0);  function tree($directory)  {  $mydir=dir($directory);  echo "<ul> ";  while($file=$mydir->read()){  if((is_dir("$directory/$file")) AND ($file!=&quo