获得数据库中包括的所有数据表以及列信息(C#)
背景:
在日常程序设计与开发过程中,我们经常需要检测某数据库中是否存在指定名称的数据表或某个数据表中是否存在指定名称的数据列.在这个情况下,就不可避免地需要获得数据库中的所有表名和列名.
解决办法:
一.对于MS SQL Server数据库
在MS SQL中,比较方便,直接查询sysobjects表即可获取。
二.对于MS Access数据文件
对于Access数据文件,我们可以通过Net Framework自带的OleDb Data Provider实现.
示例代码如下:
1.获得所有自定义数据表
其中dtSchema为一DataTable类型变量,myConn为一到指定Access数据文件的Ole连接对象
dtSchema = myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"Table"}); ///关键代码
2.获得指定数据表中所有字段相关信息
其中tblName为待获得字段信息的数据表名
DataTable dtFieldInfo = myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[]{null,null,tblName,null});
示意图如下图1,2所示:
图1 :
图2:
源代码下载地址:/Files/prince1985s/GetSchemaInfo.zip