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 |