zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    android.os.NetworkOnMainThreadException 异常处理
    java.lang.SecurityException: Permission denied (missing INTERNET permission?) 解决
    javah 生成header file 报错 问题解决
    AAPT: libpng error: Not a PNG file 问题解决
    Tomcat启动报错 Failed to start component [StandardServer[8005]]解决
    Hibernate
    Linux常用命令总结
    模拟奇数乱码请求问题
    http国际化模拟请求
    db2数据库安装注意几个问题
  • 原文地址:https://www.cnblogs.com/geovindu/p/4380564.html
Copyright © 2011-2022 走看看