C#获取数据库表信息,列信息
获取表的信息:
conn.Open();string[] restrictions = new string[4];restrictions[1] = "dbo"; DataTable table = conn.GetSchema("Tables", restrictions); conn.Close();
返回的table是表的所有信息,而不仅仅是名字,可以通过如下语句查看这些信息:
foreach (System.Data.DataRow row in table.Rows){foreach (System.Data.DataColumn col in table.Columns){Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);}}
要获取指定表的信息,关键是要设置数组restrictions的值。对于表而言,这个数组有如下的含义:
Restriction[0]表示表所在的Catalog
Restriction[1]表示表的所有者
Restriction[2]表示表的名字
Restriction[3]表示表的类型:
上面的例子就获取了所有dbo拥有的表的信息。如果要获取所有的用户表,而非系统表,可用如下语句:
conn.Open();string[] restrictions = new string[4];restrictions[3] = “BASE TABLE"; DataTable table = conn.GetSchema("Tables", restrictions); conn.Close();
获取列的信息:
conn.Open();string[] restrictions = new string[4];restrictions[1] = "dbo"; DataTable table = conn.GetSchema("Columns", restrictions); conn.Close();
与获取表的代码很类似,只是GetSchema的第一个参数不同。同样,返回结果取决于restriction的值。此时,
Restriction[0]表示列所在的Catalog
Restriction[1]表示列的所有者
Restriction[2]表示列所在的表的名字
Restriction[3]表示列名
例如:
// restriction string arraystring[] res = new string[4];// dbo拥有的所有表的所有列的信息 res[1] = "dbo";DataTable t1 = conn.GetSchema("Columns", res);// 任意owner/schema所拥有的一个叫authors的表的列信息 res[2] = "authors";DataTable t2 = conn.GetSchema("Columns", res);//任意owner/schema所拥有的一个叫authors的表的列name的信息 res[2] = "authors"; res[3] = "name ";DataTable t3 = conn.GetSchema("Columns", res);//任意owner/schema任意表中的一个列名是name的列的信息。 res[3] = "name";DataTable t4 = conn.GetSchema("Columns", res);
获取数据库的其它信息都可以使用GetSchema,只是第一个参数不同。这个参数在不同的数据库有差异:
1、在SQL Server中,可以获取的架构集合如下:
· Databases
· ForeignKeys
· Indexes
· IndexColumns
· Procedures
· ProcedureParameters
· Tables
· Columns
· Users
· Views
· ViewColumns
· UserDefinedTypes
2、在Oracle中,可以获取的架构集合如下:
· Columns
· Indexes
· IndexColumns
· Procedures
· Sequences
· Synonyms
· Tables
· Users
· Views
· Functions
· Packages
· PackageBodies
· Arguments
· UniqueKeys
· PrimaryKeys
· ForeignKeys
· ForeignKeyColumns
· ProcedureParameters
原文地址:http://www.csharpwin.com/csharpspace/11457r2196.shtml 转载请注明出处
转载于:https://www.cnblogs.com/YangFei-wow/p/3338987.html
C#获取数据库表信息,列信息相关推荐
- Java获取数据库表的字段信息,及如何将ResultSet转为json
为什么80%的码农都做不了架构师?>>> 一.Java获取数据库表的各个字段的相关信息 在某些开发情景中,需要获取数据库中表的各个字段的相关信息,如字段名,字段类型,字段大小等 ...
- 如何从jdbc中获取数据库建表语句信息(表字段名称/表字段类型/表字段注释信息/表字段长度等等)
* 如何从jdbc中获取数据库建表语句信息(表字段名称/表字段类型/表字段注释信息/表字段长度等等) * 1,表字段名称 * 2,表字段类型 * 3,表字段注释信息 这里介绍3种方式,如下: 第 ...
- SQL Server 数据库表的统计信息的更新
最近在调整基础信息数据时,新增了几个客户类型,意想不到的事情发生了,在使用新增的客户类型作为 查询条件查询报表时,居然出现了超时的现象,但是用其他以前的客户类型查询就没有问题,用一个以前增加的 客户类 ...
- android.database.cursorindexoutofboundsexception错误解决 及获取某行某列信息
1 /** 2 * 获取某行某列信息 3 * @param info 4 * @param column 5 * @return 6 */ 7 public static int getIntValu ...
- 大文件表空间+创建大文件表空间+查询数据库表空间类型信息+查询数据库表空间类型信息...
1用于解决存储文件大小不够的问题 2与普通表空间不同的地方在于大文件表空间只对应唯一一个数据文件或临时文件,普通表空间可最多1022个数据文件或临时文件 3大文件表空间对应文件可达4G个数据块大小,普 ...
- ASP获取数据库表名,字段名以及对字段的一些操作
最近,在ASP论坛上看到很多网友问怎么获取数据库表名,字段名以及如何对字段进行删除,增添的操作故写此文. 本人对SQLServer比较熟一些,故以SQLServer为列: <% ...
- springboot结合注解动态获取数据库表
springboot结合注解动态获取数据库表 1 对于分表的处理,可以通过Mybatis-Plus动态表名插件(DynamicTableNameInnerInterceptor)来实现,实现的思路主要 ...
- 数据库表和列的别名的用法
数据库表和列的别名的用法 使用数据库别名可以让sql语句的可读性更强 1.怎么给数据库表和某列(字段)起别名 用as就可以 列的别名:sql = "select 列名 as 别名 from ...
- mysql 视图列信息_MySQL 中获取用户表、用户视图、用户表中列信息
/// ///MySql 数据库维护中心/// public classMySqlDbMaintenance:DbMaintenanceProvider {/// ///获取视图信息列表 Sql语句/ ...
最新文章
- AngularJS如何在filter中相互调用filter
- MyEclipse的Java Web项目配置环境搭建-如何安装tomact
- 一文区分什么是「过拟合」和「欠拟合」?
- AngularJS 指令实践
- shell date 格式化
- python3教程-Python3 教程
- 通过CertEnroll在CA上(1创建证书请求2得到证书3安装证书)
- hive的SerDe序列化
- 让XCode的Stack Trace信息可读
- ORACLE不完全恢复的几种情况
- 机器学习1.2 ---参数学习
- Mysql 监控性能状态 QPS/TPS
- Zookeeper实现简单的分布式RPC框架
- Julia : 如何进一步改进操作Redis的效率?
- Oracle学习III —— Oracle客户端工具
- 输入表重建工具ImportREC
- 微信扫一扫打印照片的原理以及实现过程(持续更新中)
- studio 3T 使用
- 西藏自治区林芝市谷歌高清卫星地图下载(百度网盘离线包下载)
- 食品饮料行业商业供应链智能系统解决方案:智慧供应链平台助力企业搭乘数字化快车乘风破浪
热门文章
- 网民关注iPhone、Google、微软和安全
- 实现wordpress的首页文章摘要!
- RHEL5.3下手动创建用户
- python亲和性分析法推荐电影论文_数据挖掘-MovieLens数据集_电影推荐_亲和性分析_Aprioro算法...
- TI CC2530的BasicRF与Zstack的同与异(重点讲了MAC层)
- Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)
- python常用单词下载_python编程词汇
- MySQL 高级 - 存储过程 - 语法 - loop循环
- 配置 postCSS 自动添加 css 的兼容前缀||打包样式表中的图片和字体文件||打包处理 js 文件中的高级语法
- Jenkins 最新版qq邮箱配置实例演示,5步设置保证邮件接收成功!