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
  • 相关阅读:
    PAT (Advanced Level) Practice 1071 Speech Patterns (25分)
    PAT (Advanced Level) Practice 1070 Mooncake (25分)
    PAT (Advanced Level) Practice 1069 The Black Hole of Numbers (20分)
    PAT (Advanced Level) Practice 1074 Reversing Linked List (25分)
    PAT (Advanced Level) Practice 1073 Scientific Notation (20分)
    第一次冲刺个人总结01
    构建之法阅读笔记01
    人月神话阅读笔记01
    四则运算2
    学习进度条(软件工程概论1-8周)
  • 原文地址:https://www.cnblogs.com/geovindu/p/4380564.html
Copyright © 2011-2022 走看看