读取Access数据库、获取Access表信息——Visual C#读取Excel和Access数据库

 

Visual C#读取ExcelAccess数据库

 

三峡大学土木水电学院  肖泽云

 

Content  

一、读取Excel表格... 1

二、保存Excel文件... 5

三、获取表的名称... 6

四、打开指定的Excel表格... 8

五、读取Access数据库... 10

六、获取Access表信息... 12

七、打开指定的Access... 13

 

五、读取Access数据库

读取Access数据库也可以通过Oledb的方式来实现,其方式和读取Excel文件类似,主要分为六步:1、建立连接;2、打开连接;3、建立SQL查询;4、输入查询语句;5、查询并显示数据;6、关闭连接。如果已知Access文件中的表名,则可以直接通过查询语句从该表中获取数据。如下代码:

        private void 读入Access数据库_Click(object sender, EventArgs e)

        {

            OpenFileDialog openDG = new OpenFileDialog();

            openDG.Title = "打开Access数据库";

            openDG.Filter = "Access数据库(*.mdb)|*.mdb|所有文件(*.*)|*.*";

            openDG.ShowDialog();

            string filename;

            filename = openDG.FileName;

 

            DataTable table = new DataTable();

            DataRow dr;  

            //1、建立连接   

            string strConn

                = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";";  

            OleDbConnection odcConnection = new OleDbConnection(strConn);  

            //2、打开连接   

            odcConnection.Open();              

            //3、建立SQL查询   

            OleDbCommand odCommand = odcConnection.CreateCommand();  

            //4、输入查询语句   

            odCommand.CommandText = @"SELECT * FROM sz_fcd";  

            OleDbDataReader odrReader = odCommand.ExecuteReader();  

            //5、查询并显示数据   

            int size = odrReader.FieldCount;  

            for (int i = 0; i < size; i++)  

            {  

                DataColumn dc;   

                dc = new DataColumn(odrReader.GetName(i));

                table.Columns.Add(dc);  

            }  

            while (odrReader.Read())  

            {

                dr = table.NewRow();  

                for (int i = 0; i < size; i++)  

                {  

                    dr[odrReader.GetName(i)] = odrReader[odrReader.GetName(i)].ToString();  

                }

                table.Rows.Add(dr);  

            }

            //6、关闭连接   

            odrReader.Close();  

            odcConnection.Close();

            dataGridView1.DataSource = table;

        }

如果只需要获取表中的某个字段数据,则可以通过修改SQL查询语句来实现,如只需要获取GPSXGPSY这两个字段,则修改查询语句为:

odCommand.CommandText = @"SELECT GPSX,GPSY FROM sz_fcd";

如果要获取表中符合某个添加的数据,如字段GPSID值为163的所有数据,则修改查询语句为:

odCommand.CommandText = @"SELECT * FROM sz_fcd where GPSID=163";  

如果要获取表中的数据并按某个添加排列,可以通过Order来指定,如指定数据按GPSID作为主排列,GPSYEARGPSMONTHGPSDAY为次排列,则修改查询语句为:

            odCommand.CommandText = @"SELECT * FROM sz_fcd Order by GPSID,GPSYEAR,GPSMONTH,GPSDAY";  

 

 

六、获取Access表信息

同样通过Oledb方式可以获取Access表信息,这些信息包括表名称、表类型等等。如下代码:

        private void 获取Access表信息_Click(object sender, EventArgs e)

        {

            OpenFileDialog openDG = new OpenFileDialog();

            openDG.Title = "打开Access数据库";

            openDG.Filter = "Access数据库(*.mdb)|*.mdb|所有文件(*.*)|*.*";

            openDG.ShowDialog();

            string filename;

            filename = openDG.FileName;

 

            OleDbConnection oledbConnection;

 

            string strConn

                = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";";

            oledbConnection = new OleDbConnection(strConn);

            oledbConnection.Open();

 

            DataTable table = new DataTable();

            table = oledbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });

            dataGridView1.DataSource = table;

        }

其结果如下图所示:

图片

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值