Access MetaData
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb; /*
MetaDataCollections
DataSourceInformation
DataTypes
Restrictions
ReservedWords
Users
Databases
Tables
Columns
StructuredTypeMembers
Views
ViewColumns
ProcedureParameters
Procedures
ForeignKeys
IndexColumns
Indexes
UserDefinedTypes
*
*
* MetaDataCollections 集合:
DataSourceInformation
DataTypes
Restrictions
ReservedWords
Columns
Indexes
Procedures
Tables
Views
*
*/ namespace AccessDemo
{ /// <summary>
///
/// </summary>
public partial class Form1 : Form
{
string connectionAccessString = "Microsoft.ACE.OLEDB.12.0;Data=geovindu.accdb;";
/// <summary>
///
/// </summary>
/// <returns></returns>
private DataTable setTables()
{
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("name", typeof(string));
dt.Rows.Add(1, "TABLES");//所有表包括系统表
dt.Rows.Add(2, "Indexes");//所有有主键的表
dt.Rows.Add(3, "IndexColumns");//有键的表及主键
dt.Rows.Add(4, "Views");//所有视图
dt.Rows.Add(5, "DataTypes");//字段类型
dt.Rows.Add(6, "Columns");//表的字段
dt.Rows.Add(7, "Catalogs");//数据库文件地址
dt.Rows.Add(8, "DatasourceInformation");//数据库文件版本等信息
dt.Rows.Add(9, "ForeignKeyColumns");//无效
dt.Rows.Add(10, "ForeignKeys");//外键
dt.Rows.Add(11, "MetaDataCollections");//MetaData集合
dt.Rows.Add(12, "PrimaryKeys");
dt.Rows.Add(13, "ReservedWords");
dt.Rows.Add(14, "Restrictions");
dt.Rows.Add(15, "UniqueKeys");
dt.Rows.Add(16, "ViewColumns");//视图的字段
dt.Rows.Add(17, "UserDefinedTypes");
dt.Rows.Add(18, "DATATYPES");
return dt;
}
/// <summary>
///
/// </summary>
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 20150331
/// Geovin Du
/// 涂聚文
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
this.comboBox1.DataSource = setTables();
this.comboBox1.DisplayMember = "name";
this.comboBox1.ValueMember = "id";
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
//JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif
openFileDialog1.FileName = "";
openFileDialog1.Filter = "sqlite files(*.mdb)|*.mdb|files (*.*)|*.*";//|(*.xlsx)|*.xlsx Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.* txt files (*.txt)|*.txt|All files (*.*)|*.*"
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
if (!openFileDialog1.FileName.Equals(String.Empty))
{
connectionAccessString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + openFileDialog1.FileName + ";";//Password=geovindu;
this.textBox1.Text = openFileDialog1.FileName;//
}
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
string[] restrictions = new string[4];
restrictions[3] = "Table";
try
{
using(OleDbConnection con = new OleDbConnection(connectionAccessString))
{
con.Open();
//DataTable dt = con.GetSchema(this.comboBox1.Text.Trim(), restrictions);
//DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] { null, null, null, (this.comboBox1.Text.Trim()) }); DataTable dt = con.GetSchema(this.comboBox1.Text.Trim());
this.dataGridView1.DataSource = dt; }
}
catch (Exception ex)
{
ex.Message.ToString();
}
}
}
}
数据类型:
Short | System.Int16 | 2 |
Long | System.Int32 | 3 |
Single | System.Single | 4 |
Double | System.Double | 5 |
Currency | System.Decimal | 6 |
DateTime | System.DateTime | 7 |
Bit | System.Boolean | 11 |
Byte | System.Byte | 17 |
GUID | System.Guid | 72 |
BigBinary | System.Byte[] | 204 |
LongBinary | System.Byte[] | 205 |
VarBinary | System.Byte[] | 204 |
LongText | System.String | 203 |
VarChar | System.String | 202 |
Decimal | System.Decimal | 131 |
Access MetaData的更多相关文章
- WCF学习系列二---【WCF Interview Questions – Part 2 翻译系列】
http://www.topwcftutorials.net/2012/09/wcf-faqs-part2.html WCF Interview Questions – Part 2 This WCF ...
- Openstack api 学习文档 & restclient使用文档
Openstack api 学习文档 & restclient使用文档 转载请注明http://www.cnblogs.com/juandx/p/4943409.html 这篇文档总结一下我初 ...
- OpenStack Swift集群与Keystone的整合使用说明
之前已经介绍了OpenStack Swift集群和Keystone的安装部署,最后来讲一讲Swift集群与Keystone的整合使用吧. 1. 简介 本文档描述了Keystone与Swift集群的整合 ...
- OpenStack Keystone安装部署流程
之前介绍了OpenStack Swift的安装部署,采用的都是tempauth认证模式,今天就来介绍一个新的组件,名为Keystone. 1. 简介 本文将详细描述Keystone的安装部署流程,并给 ...
- 使用curl操作openstack swift
openstack官网有专门的开发者文档介绍如何使用curl操作swift(http://docs.openstack.org/api/openstack-object-storage/1.0/con ...
- 深入理解MYSQL的MDL元数据锁
1 前言 2 MDL锁与实现 3 MDL锁的性能与并发改进 4 MDL锁的诊断 前言 好久没更新,主要是因为Inside君最近沉迷于一部动画片——<新葫芦娃兄弟>.终于抽得闲,完成了本篇关 ...
- Learning WCF Chapter1 Generating a Service and Client Proxy
In the previous lab,you created a service and client from scratch without leveraging the tools avail ...
- Learing WCF Chapter1 Fundamental WCF Concepts
At its core,WCF is a development platform for service-oriented applications. As I mentioned earlier, ...
- opensatck 在启动的时候注入额外的信息
在配置ceph的时候建议使用metadata/cloud-init来注入额外的信息. https://raymii.org/s/tutorials/Automating_Openstack_with_ ...
随机推荐
- python 之 爬普房网
from bs4 import BeautifulSoupimport reimport requestsimport pandas## pa pufangwangclass down(object) ...
- Java_多线程
线程(Thread) 1.线程是CPU进行资源调度的最小单位 2.线程是进程实际运行的单位,处理进程中无数的小任务 3.线程共享代码和数据空间 4.一个进程可以并发多个线程,线程之间切换系统开销很小 ...
- tomcat运行springboot项目war包
以最简单的spring boot demo项目来演示如何发布项目war包到tomcat,并成功运行(有很多小伙伴会出现404错误) 一.准备一个最简单的demo项目 在IDEA中新建一个项目,一直ne ...
- JavaScript执行环境和作用域(链)的那些事
执行环境 什么是执行环境 提起作用域,我们不得不说说什么是执行环境.执行环境定义了变量或函数有权访问的其他数据,并决定其各自的行为.每一个执行环境都有一个对应的变量对象,这个对象的作用就是保存在环境中 ...
- Markdown基本语法总结
一.标题 在想要设置为标题的文字前面加#来表示 一个#是一级标题,二个#是二级标题,以此类推.支持六级标题. 注:标准语法一般在#后跟个空格再写文字. 示例: # 这是一级标题 ## 这是二级标题 # ...
- spark中资源调度任务调度
在spark的资源调度中 1.集群启动worker向master汇报资源情况 2.Client向集群提交app,向master注册一个driver(需要多少core.memery),启动一个drive ...
- mysql.sock文件丢失被删除解决方法
Mysql有两种连接方式: (1),TCP/IP (2),socket 对mysql.sock来说,其作用是程序与mysqlserver处于同一台机器,发起本地连接时可用. 例如你无须定义连接host ...
- Python抓取远程文件获取真实文件名
用urllib下载远程文件并转存到hdfs服务器,在下载时,下载地址中不一定包含文件名,需要从连接信息中获取. 1 file_url = request.form.get('file_url') 2 ...
- ZJOI2019 day2 游记
应该是打的最没有信仰的一次比赛了 然后这个垃圾水平居然还拿了170,真是有毒 我的语文并不好所以还是写流水账吧 day-2 到了余姚,发现附近并没有什么好吃的,于是直接去kfc了 另外潮湿的空气对呼吸 ...
- 一些很好用但不常用的css属性总结 (持续中......)
在各种框架横行的9012,感觉我们学前端的都变得浮躁了很多,放一张最近流行的神图: 唉,扯远了, 还是整理我的东西吧,路漫漫其修远兮,吾将上下而求索! 1, position:sticky; 粘性定位 ...