哪为大虾知道C#如何连接ACSESS数据库?最好给出连接代码

解决方案 »

  1.   

    using System.Data.OleDb 
    public string myConnstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+HttpContext.Current.Server.MapPath("data.mdb"); //data.mdb是你的数据库名称 
    OleDbConnection MyConnection; 
    MyConnection = new OleDbConnection(myConnstring); 
    strInsert=""; //strinsert是你的sql语句 
    OleDbCommand MyCommand = new OleDbCommand(strInsert,MyConnection); 
    MyConnection.Open(); 
    MyCommand.ExecuteNonQuery(); 
    MyConnection.Close();
      

  2.   

    string connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Request.PhysicalApplicationPath + "**.mdb";
    OleDbConnection MyConn=new OleDbConnection(connectionString);
    MyConn.Open();
      

  3.   

    我的例子是把Access数据库中的数据去更新SQL Server数据库,其中用到数据表的结构一样(这儿只是为了简化操作,并不是必要条件,其实只要两个数据库中数据表的字段要进行匹配即可,数据表可以是不一样的)。
     
    首先,先说说数据表结构,表名为“EmployeeInfo”。
    字段名 类型 备注 
    EmployeeID Int 自增字段 
    EmployeeName Varchar(20)   
    Password Varchar(20)   
    Desciption Varchar(255)    
    接着,要先从Access数据库中读取数据,代码如下:
        private const string TABLE_NAME = "EmployeeInfo";
        private DataSet dsData = null;
     
        private void btnLoad_Click(object sender, System.EventArgs e)
        {
            // Load data from access db file
            OleDbConnection oleDBConn = new OleDbConnection();
            oleDBConn.ConnectionString = yourDBConnectionString
     
            try
            {
                oleDBConn.Open();//Open access db file
            }
            catch( Exception err )
            {
                MessageBox.Show( err.Message );
                return;
            }
     
            string strQuery = "SELECT * FROM EmployeeInfo";
            OleDbDataAdapter myDAdapter = new OleDbDataAdapter( strQuery, oleDBConn );
     
            DataSet dsSource = new DataSet();
            try
            {
                // Get data from access db file
                myDAdapter.Fill( dsSource, TABLE_NAME );
     
                // Release ado.net resource
                myDAdapter.Dispose();
                oleDBConn.Close();
            }
            catch( Exception err )
            {
                MessageBox.Show( err.Message );
                oleDBConn.Close();
                return;
            }
     
            // Process data set
            ExchangeDS( out dsData, ref dsSource );
        }
     
        private void ExchangeDS( out DataSet dsDest, ref DataSet dsSource )
        {
            // Create new data set
            dsDest = new DataSet( );
            DataTable dtDest = new DataTable( TABLE_NAME );
            dsDest.Tables.Add( dtDest );
     
            // Add data column
            dsDest.Tables[TABLE_NAME].Columns.Add( 
                new DataColumn( "EmployeeID", typeof(int) ) );
            dsDest.Tables[TABLE_NAME].Columns.Add( 
                new DataColumn( "EmployeeName", typeof(string) ) );
            dsDest.Tables[TABLE_NAME].Columns.Add( 
                new DataColumn( "Password", typeof(string) ) );
            dsDest.Tables[TABLE_NAME].Columns.Add( 
                new DataColumn( "Description", typeof(string) ) );
     
            // Add data row from source data set
            while( dsSource.Tables[TABLE_NAME].Rows.Count > 0 )
            {
                DataRow dr = dsSource.Tables[TABLE_NAME].Rows[0];
                dsDest.Tables[TABLE_NAME].Rows.Add( dr.ItemArray );
                dsSource.Tables[TABLE_NAME].Rows.Remove( dr );
            }
        }
     
           这里需要注意的是“ExchangeDS”函数,如果DataSet没有发生任何变化,那么用DataAdapter是无法更新数据库的,那么这个函数的目的造成DataSet中的记录发生变化,本来想用DataSet.Merge方法,发现也无法用DataAdapter来无法更新数据库的,因此只能一条记录一条记录进行复制了。
    别人写的
    我贴一下