序言
众所周知,Oracle数据库和MySQL数据库一般在大型项目中使用,在某些小型项目中Access数据库使用较为方便,今天记录一下VS2019 WinFrm应用程序连接Access数据库,并实现数据库表的数据查询显示。
创建Access数据库
这里以Access2000为例,创建一个命名为DB.mdb的数据库(没有密码),并创建一张SysUser表用来存放用户名和密码,添加一条数据。
数据库文件保存为D:CCodeAccessDBDB.mdb。
如下图。
创建WinFrm桌面应用项目
创建项目、添加控件
创建WinFrm桌面应用项目,并在主窗体上添加一个button和一个dataGridView,分别命名为btnConnect和dataGridViewMain。
如下图。
添加引用
因为接下来要使用OleDb的相关命令,所以项目中必须包含System.Data 和 System.Data.OleDb的引用,所以这里我们需要添加using System.Data.OleDb;
如下图。
添加按钮事件
双击按钮,编辑如下代码:
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\CCode\AccessDB\DB.mdb"); OleDbCommand cmd = conn.CreateCommand(); cmd.CommandText = "select * from SysUser"; conn.Open(); OleDbDataReader dr = cmd.ExecuteReader(); DataTable dt = new DataTable(); if (dr.HasRows) { for (int i = 0; i < dr.FieldCount; i++) { dt.Columns.Add(dr.GetName(i)); } dt.Rows.Clear(); } while (dr.Read()) { DataRow row = dt.NewRow(); for (int i = 0; i < dr.FieldCount; i++) { row[i] = dr[i]; } dt.Rows.Add(row); } cmd.Dispose(); conn.Close(); dataGridViewMain.DataSource = dt;
查看运行效果:
项目全部代码如下:

1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Data.OleDb; 6 using System.Drawing; 7 using System.Linq; 8 using System.Text; 9 using System.Threading.Tasks; 10 using System.Windows.Forms; 11 12 namespace TestAccessDB 13 { 14 public partial class MainFrm : Form 15 { 16 public MainFrm() 17 { 18 InitializeComponent(); 19 } 20 21 private void btnConnect_Click(object sender, EventArgs e) 22 { 23 OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\CCode\AccessDB\DB.mdb"); 24 OleDbCommand cmd = conn.CreateCommand(); 25 cmd.CommandText = "select * from SysUser"; 26 conn.Open(); 27 OleDbDataReader dr = cmd.ExecuteReader(); 28 DataTable dt = new DataTable(); 29 if (dr.HasRows) 30 { 31 for (int i = 0; i < dr.FieldCount; i++) 32 { 33 dt.Columns.Add(dr.GetName(i)); 34 } 35 dt.Rows.Clear(); 36 } 37 while (dr.Read()) 38 { 39 DataRow row = dt.NewRow(); 40 for (int i = 0; i < dr.FieldCount; i++) 41 { 42 row[i] = dr[i]; 43 } 44 dt.Rows.Add(row); 45 } 46 cmd.Dispose(); 47 conn.Close(); 48 dataGridViewMain.DataSource = dt; 49 } 50 } 51 }
注意控件的命名。
作者:Jeremy.Wu
出处:https://www.cnblogs.com/jeremywucnblog/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。