以访问Access为例我包装的一个简单的类        /// <summary>
/// DataConnect 连接Access数据库
/// </summary>
public class DataConnect
{ private System.Data.OleDb.OleDbConnection dbconn;
private System.Data.OleDb.OleDbDataAdapter myAdapter;
private DataTable myTable; public DataConnect()
{
//
// TODO: 在此处添加构造函数逻辑
//
myTable=new DataTable();
}
public OleDbConnection OdbConnection
{
set
{
this.dbconn=value;
}
get
{
return this.dbconn;
}
}
/// <summary>
/// 连接ACCESS数据库
/// </summary>
/// <param name="sql">string型,连结数据库的位置</param>
/// <returns></returns>
private  void Connection(string sqlPost)
{
dbconn=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data source="+sqlPost);
} public void Open(string sqlPost)
{
Connection(sqlPost);
dbconn.Open();
} public void Close()
{
dbconn.Close();
}
/// <summary>
/// 填充数据表,原来的会被清空
/// </summary>
/// <param name="sqlSconn">执行语句</param>
/// <returns>返回数据表</returns>
public virtual void DataFill(string sqlSconn)
{
this.Table.Clear();
myAdapter=new OleDbDataAdapter(sqlSconn,dbconn);
OleDbCommandBuilder myBuilder=new OleDbCommandBuilder(myAdapter);
myAdapter.Fill(myTable);
} /// <summary>
/// 追加数据
/// </summary>
/// <param name="sqlSconn"></param>
public void DataAppend(string sqlSconn)
{
myAdapter=new OleDbDataAdapter(sqlSconn,dbconn);
OleDbCommandBuilder myBuilder=new OleDbCommandBuilder(myAdapter);
myAdapter.Fill(myTable);
}
/// <summary>
/// 获取生成的数据表
/// </summary>
public DataTable Table
{
get{return this.myTable;}
//set{myTable=value;}
} /// <summary>
/// 数据回写
/// </summary>
public void SaveChanges()
{
//myAdapter.Fill(this.Table);
myAdapter.Update(myTable);
myTable.AcceptChanges();
}
}
具体绑定数据DataConnect dc = new DataConnect();
dc.open(@"C:\test.mdb"); //你的Access的位置
dc.DataFill("select * from 表名"); //表名,你的表的名称
this.dataGrid1.DataSouse = dc.Table;