你的位置:首页 > 数据库

[数据库]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 集合:DataSourceInformationDataTypesRestrictionsReservedWordsColumnsIndexesProceduresTablesViews * */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();      }    }  }}

  数据类型:

ShortSystem.Int162
LongSystem.Int323
SingleSystem.Single4
DoubleSystem.Double5
CurrencySystem.Decimal6
DateTimeSystem.DateTime7
BitSystem.Boolean11
ByteSystem.Byte17
GUIDSystem.Guid72
BigBinarySystem.Byte[]204
LongBinarySystem.Byte[]205
VarBinarySystem.Byte[]204
LongTextSystem.String203
VarCharSystem.String202
DecimalSystem.Decimal131