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 |