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>
        /// 20130331
        /// 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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。