使用c#获取access中所有表的表名与内容
2009-03-11 23:42
330 查看
以前在网上查过,似乎也可以通过读取access系统表的方法来获得,但是实在想不想来是什么,今天又在网上找了找,终于发现更加方便的方法,更重要的是,这种方法也可以通用所有OLEDB数据源。
这里用到了OleDbConnection两个方法:
GetSchema
GetOleDbSchemaTable
看MSDN的帮助,写的很不清楚,还是用代码来说话吧。
1、获取OLEDB连接的架构
返回的结果为一个DataTable,如下:
(列名复制不过来,图又没办法贴,就这样意思一下吧)
2、然后可以指定读取其中的内容,比如读取所有表的信息。
返回的结果如下:
TABLE_NAME TABLE_TYPE
detail TABLE
detail1 TABLE
mainTask TABLE
MSysAccessStorage ACCESS TABLE
MSysAccessXML ACCESS TABLE
MSysACEs SYSTEM TABLE
MSysNavPaneGroupCategories ACCESS TABLE
MSysNavPaneGroups ACCESS TABLE
MSysNavPaneGroupToObjects ACCESS TABLE
MSysNavPaneObjectIDs ACCESS TABLE
MSysObjects SYSTEM TABLE
MSysQueries SYSTEM TABLE
MSysRelationships SYSTEM TABLE
Query1 VIEW
TagAccessLog TABLE
testDetail TABLE
testLog TABLE
testMain TABLE
testTask TABLE
3、继续,读取某张表的列信息,比如读取mainTask表的信息:
返回结果部分列内容:
TABLE_NAME COLUMN_NAME
4、然后可以尝试用另一个方法来读取表信息:
返回结果:
嗯,差不多该取的信息都有了,尤其是取字段的信息,非常的详细。
这里用到了OleDbConnection两个方法:
GetSchema
GetOleDbSchemaTable
看MSDN的帮助,写的很不清楚,还是用代码来说话吧。
1、获取OLEDB连接的架构
conn.Open(); DataTable cnSch = conn.GetSchema();
返回的结果为一个DataTable,如下:
MetaDataCollections | 0 | 0 |
DataSourceInformation | 0 | 0 |
DataTypes | 0 | 0 |
Restrictions | 0 | 0 |
ReservedWords | 0 | 0 |
Columns | 4 | 4 |
Indexes | 5 | 4 |
Procedures | 4 | 3 |
Tables | 4 | 3 |
Views | 3 | 3 |
2、然后可以指定读取其中的内容,比如读取所有表的信息。
DataTable tbl = conn.GetSchema("tables"); dgv1.DataSource = tbl;
返回的结果如下:
TABLE_NAME TABLE_TYPE
detail TABLE
detail1 TABLE
mainTask TABLE
MSysAccessStorage ACCESS TABLE
MSysAccessXML ACCESS TABLE
MSysACEs SYSTEM TABLE
MSysNavPaneGroupCategories ACCESS TABLE
MSysNavPaneGroups ACCESS TABLE
MSysNavPaneGroupToObjects ACCESS TABLE
MSysNavPaneObjectIDs ACCESS TABLE
MSysObjects SYSTEM TABLE
MSysQueries SYSTEM TABLE
MSysRelationships SYSTEM TABLE
Query1 VIEW
TagAccessLog TABLE
testDetail TABLE
testLog TABLE
testMain TABLE
testTask TABLE
3、继续,读取某张表的列信息,比如读取mainTask表的信息:
DataTable colTbl = conn.GetSchema("columns", new string[] { null, null, "mainTask" }); dgvCn.DataSource=colTbl;
返回结果部分列内容:
TABLE_NAME COLUMN_NAME
mainTask | catalog |
mainTask | content |
mainTask | crdate |
mainTask | Emergency |
mainTask | endDate |
mainTask | fnrate |
mainTask | level |
mainTask | mainID |
mainTask | startDate |
mainTask | tags |
mainTask | title |
mainTask | memo |
mainTask | memo2 |
DataTable tblSch = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); DataView view = tblSch.DefaultView; view.RowFilter = "table_type='table' or table_type='view'"; cmbTblList.SelectedIndexChanged -= cmbTblList_SelectedIndexChanged; cmbTblList.DataSource = view; cmbTblList.DisplayMember = "Table_Name"; cmbTblList.SelectedIndexChanged += cmbTblList_SelectedIndexChanged; dgvSch.DataSource = view; dgv1.DataSource = tblSch;
返回结果:
detail | TABLE |
detail1 | TABLE |
mainTask | TABLE |
Query1 | VIEW |
TagAccessLog | TABLE |
testDetail | TABLE |
testLog | TABLE |
testMain | TABLE |
testTask | TABLE |
相关文章推荐
- 使用c#获取access中所有表的表名与内容
- 使用c#获取access中所有表的表名与内容
- C# 自动查找文件内容(正则使用、获取目录下所有文件、多线程、日志记录,文件操作)
- C#遍历系统所安装的打印机,使用WMI方式获取打印机的所有属性
- C#获取IP归属地【使用抓取网页内容方式】
- C#获取本机所有IP combobox messagebox控件使用介绍
- 使用C#抓取网页内容并分析获取数据
- C#使用DateTime获取某段日期范围内的所有日期与判断某个日期是否在某段日期范围内
- 黄聪:C#里如何使用WebBrowser获取处理AJAX生成的网页内容?
- C#使用WebClient获取给定地址的内容(POST方式传参)
- 使用request生成一个枚举类获取所有的<input>的内容
- c# 获取access所有表名 获取指定表所有字段名
- C# 根据Url获取页面所有内容
- js操作cookie;js的setInterval;C#获取指定页面的内容;Ajax.dll的使用
- C#遍历系统所安装的打印机,使用WMI方式获取打印机的所有属性
- C#使用iTextSharp从PDF文档获取内容的方法
- C#------获取最后一个"/"字符后面的所有内容
- Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php c#.Net
- C#遍历系统所安装的打印机,使用WMI方式获取打印机的所有属性
- 本文使用c#通过oledb可获取excel文件表的结构信息,同理也可以获得access等数据库的表结构信息,实现如下: