读取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;

}

其结果如下图所示:

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