Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1600|回复: 0

打开指定的Access表 Visual C#读取Excel和Access数据库

  [复制链接]

该用户从未签到

发表于 2011-9-26 14:56:59 | 显示全部楼层 |阅读模式
前面使用的Oledb方式都是打开Access文件中已知表名的表格,如果在不知道Access文件中表名的情况下要查看表格,则可以结合前面获取Access表格信息,来通过指定表名的方式打开指定的表。
首先,添加一个按钮,设置其Name为“打开Access文件button”,Text为“打开Access文件”;再添加一个按钮,设置其Name为“打开指定的Access表button”,Text为“打开指定的Access表”;添加一个ComboBox控件,设置其Name为“AccessComboBox”。如下图所示:


1、打开指定的Access表
首先在全局变量中定义Access的连接对象,如下:
private OleDbConnection accessOledbConnection;
然后在按钮“打开Access文件button”的Click事件中添加如下代码:




private void 打开Access文件button_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();
string strConn
= @&quotrovider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";";
accessOledbConnection = new OleDbConnection(strConn);
accessOledbConnection.Open();
table = accessOledbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
AccessComboBox.Items.Clear();
foreach (DataRow dr in table.Rows)
{
AccessComboBox.Items.Add((String)dr["TABLE_NAME"]);
}
AccessComboBox.Text = AccessComboBox.Items[0].ToString();
}
2、打开指定的Access表
在按钮“打开指定的Access表button”的Click事件中添加如下代码:
private void 打开指定的Access表button_Click(object sender, EventArgs e)
{
OleDbCommand oleDbCommand = accessOledbConnection.CreateCommand();
oleDbCommand.CommandText = @"SELECT * FROM " + AccessComboBox.Text;
DataTable table = new DataTable();
DataRow dr;
OleDbDataReader odrReader = oleDbCommand.ExecuteReader();
//查询并显示数据
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);
}
//关闭连接
odrReader.Close();
//oledbcConnection.Close();
dataGridView1.DataSource = table;
}
其结果如下图所示:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

该用户从未签到

发表于 2011-10-29 12:50:46 | 显示全部楼层
谢谢啊。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-4-28 15:25 , Processed in 0.449731 second(s), 36 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表