日期:2014-05-18  浏览次数:20941 次

c# 显示ACCESS数据
c# 连接 ACCESS后,用DATAGRIDVIEW 显示,请高手完成我的代码?我是初学者。
代码如下:
C# code

public class AccessDbClass     
    {     
    
        #region 变量声明处     
        public OleDbConnection Conn;     
        public string ConnString;//连接字符串    
        #endregion     
    
    
        #region 构造函数与连接关闭数据库     
        /**//// <summary>     
        /// 构造函数     
        /// </summary>     
        /// <param name="Dbpath">ACCESS数据库路径</param>     
        public AccessDbClass()     
        {
            ConnString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\cwfx.accdb";
            Conn = new OleDbConnection(ConnString);     
            Conn.Open();     
        } 
           /**//// <summary>     
        /// 根据SQL命令返回数据DataSet数据集,其中的表可直接作为dataGridView的数据源。     
        /// </summary>     
        /// <param name="SQL"></param>     
        /// <param name="subtableName">在返回的数据集中所添加的表的名称</param>     
        /// <returns></returns>     
        public DataSet SelectToDataSet(string SQL, string subtableName)     
        {     
            OleDbDataAdapter adapter = new OleDbDataAdapter();     
            OleDbCommand command = new OleDbCommand(SQL, Conn);     
            adapter.SelectCommand = command;     
            DataSet Ds = new DataSet();     
            Ds.Tables.Add(subtableName);     
            adapter.Fill(Ds, subtableName);     
            return Ds;     
        }   

}
//程序调用,这里数据也不全,请高手帮我完成。
        private void button1_Click(object sender, EventArgs e)
        {
            //初始化,载入数据库路径     
            AccessDbClass mydb = new AccessDbClass();

            DataSet ds = mydb.SelectToDataSet(@"select * from dm", "dm"); ;

            OleDbDataAdapter ODA = new OleDbDataAdapter();
            
            ODA.Fill(ds);//这里提示错误:SelectCommand未初始化。
            dataGridView1.DataSource = ds;
            
           //关闭数据库     
            mydb.Close();



        }






上面程序有错误,我在上面注解了,还程序不全,不能在DATAGRIDVIEW上显示数据库数据,请高手帮我写完。谢谢。

------解决方案--------------------
dataGridView1.DataSource = ds.Tables[0];

------解决方案--------------------
OleDbDataAdapter ODA = new OleDbDataAdapter();
ODA.Fill(ds)
去掉这两行,我觉得这两行没什么意义,你在前面方法里已经写了,然后改
dataGridView1.DataSource = ds.Tables[0];
就ok啦