序言
眾所周知,Oracle數據庫和MySQL數據庫一般在大型項目中使用,在某些小型項目中Access數據庫使用較為方便,今天記錄一下VS2019 WinFrm應用程序連接Access數據庫,並實現數據庫表的數據查詢顯示。
創建Access數據庫
這里以Access2000為例,創建一個命名為DB.mdb的數據庫(沒有密碼),並創建一張SysUser表用來存放用戶名和密碼,添加一條數據。
數據庫文件保存為D:\CCode\AccessDB\DB.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/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。