C# DataGridView顯示數據庫數據


正在學習數據庫相關內容如,做個記錄,加深印象!

Q:[圖片太小看不清怎么辦?]

R:[在圖片上右擊選擇在新標簽頁打開圖片]

1.使用Office Access創建名為Data.mdb的數據庫,文件位置位於桌面

C:\Users\Administrator\Desktop\Data.mdb(程序里要用到的!)

(長這樣!)

然后,Data內含有兩個文件:data1和data2,我們用的是data1

 

 data1的內容如下:

 

 

2.建立VS項目

在winform上添加datagridview控件

(簡單,粗暴!)

 

3.編寫“加載數據”按鈕程序

DataSet ds = new DataSet();//DataSet可理解成內存中的數據庫
OleDbCommand comm = new OleDbCommand();//OleDbCommand表示要對access數據源執行的sql語句或存儲過程
OleDbDataAdapter da = new OleDbDataAdapter();//leDbDataAdapter擔當 DataSet和數據源之間的橋梁,用於檢索和保存數據
            
//data.mdb文件位置
string ConnectionStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Users\Administrator\Desktop\data.mdb;";
/* 1.若我們新建的data.mdb文件文件位於當前程序的啟動位置,則語句改為:
 *   string ConnectionStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath ";            
            
 * 2.代碼中Provider引擎可有2種寫法:
 *   Provider=Microsoft.ACE.OLEDB.12.0;
 *   Provider=Microsoft.Jet.OLEDB.4.0;
 *   區別:
 *   ACE引擎,既可以訪問Office 97-2003,也可以訪問Office 2007 。
 *   Jet 引擎,可以訪問 Office 97-2003,但不能訪問 Office 2007。
 *   所以,如果access數據庫后綴名為.accdb(2007)就不能用jet引擎了。*/

OleDbConnection sda = new OleDbConnection(ConnectionStr);//定位到要連接的數據庫
sda.Open();//打開數據庫,准備操作
comm.Connection = sda;//連接
comm.CommandType = CommandType.Text;//...(不會解釋,VS自帶的解釋不太懂)

以上過程VS已經連接到了我們創建的data.mdb數據庫了,接下來進行數據的讀操作

 

4.讀取數據庫數據

 (1).顯示數據庫全部數據

comm.CommandText = "select * from data1";//選取data1
da.SelectCommand = comm;//官方定義:獲取或設置SQL語句或存儲過程,用於選擇數據源中的記錄
da.Fill(ds);//將從數據庫中獲取的數據添加到DataSet內
dgv.DataSource = ds.Tables [0].DefaultView;//datagridview綁定數據源進行顯示
sda.Close();//斷開數據庫的連接,很重要!

結果如下:

 

(2)顯示多行(連續)

comm.CommandText = "select top 5 * from data1";//選取data1的前5行
 da.SelectCommand = comm;//官方定義:獲取或設置SQL語句或存儲過程,用於選擇數據源中的記錄
da.Fill(ds);//將從數據庫中獲取的數據添加到DataSet內
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview綁定數據源進行顯示
sda.Close();//斷開數據庫的連接,很重要!

結果如下:

 

(3)顯示多行(非連續)

comm.CommandText = "select * from data1 where 序號 = '8' or 序號 = '2' or 序號 = '5'";
 //查詢表內序號為8//2/5的行
da.SelectCommand = comm;//官方定義:獲取或設置SQL語句或存儲過程,用於選擇數據源中的記錄
da.Fill(ds);//將從數據庫中獲取的數據添加到DataSet內
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview綁定數據源進行顯示
sda.Close();//斷開數據庫的連接,很重要!

結果如下:

 

顯示非連續多行的方法還有其他語句可實現,可我不會!

 

 

(4)顯示多列

comm.CommandText = "select * from data1";//選取data1
da.SelectCommand = comm;//官方定義:獲取或設置SQL語句或存儲過程,用於選擇數據源中的記錄
da.Fill(ds);//將從數據庫中獲取的數據添加到DataSet內
DataTable dat = ds.Tables[0].DefaultView.ToTable(false, new string[] { "學號", "班級", "合格標記" });
//從DataSet內提取 學號,班級,合格標記 三列內容
dgv.DataSource = dat.DefaultView;//datagridview綁定數據源進行顯示
sda.Close();//斷開數據庫的連接,很重要!

結果如下:

 

  

(5)顯示單列(根據列標題索引)

comm.CommandText = "select 學號 from data1";//選取data1內列名稱為“學號”的列
da.SelectCommand = comm;//官方定義:獲取或設置SQL語句或存儲過程,用於選擇數據源中的記錄
da.Fill(ds);//將從數據庫中獲取的數據添加到DataSet內
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview綁定數據源進行顯示
sda.Close();//斷開數據庫的連接,很重要!

結果如下:

  

(6)條件篩選

s1:篩選空單元格行

comm.CommandText = "select * from data1 where ISNULL(合格標記)";//篩選合格標記列含空單元格的行
da.SelectCommand = comm;//官方定義:獲取或設置SQL語句或存儲過程,用於選擇數據源中的記錄
da.Fill(ds);//將從數據庫中獲取的數據添加到DataSet內
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview綁定數據源進行顯示
sda.Close();//斷開數據庫的連接,很重要!

結果如下:

 

s2:多條件篩選(and)

comm.CommandText = "select * from data1 where 分數 < '3.6' and 學號 > '000031224217'";
//篩選分數小於3.6並且 學號大於000031224217的數據
da.SelectCommand = comm;//官方定義:獲取或設置SQL語句或存儲過程,用於選擇數據源中的記錄
da.Fill(ds);//將從數據庫中獲取的數據添加到DataSet內
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview綁定數據源進行顯示
sda.Close();//斷開數據庫的連接,很重要!

結果如下:

  

s3:多條件篩選(or)

comm.CommandText = "select * from data1 where 序號 = '3' or 序號 = '9'";
//篩選序號等於3或9的數據
da.SelectCommand = comm;//官方定義:獲取或設置SQL語句或存儲過程,用於選擇數據源中的記錄
da.Fill(ds);//將從數據庫中獲取的數據添加到DataSet內
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview綁定數據源進行顯示
sda.Close();//斷開數據庫的連接,很重要!

結果如下:

 

 s4:多條件篩選(in)

comm.CommandText = "select * from data1 where 序號 in('3','9')";
//篩選序號等於3或9的數據
da.SelectCommand = comm;//官方定義:獲取或設置SQL語句或存儲過程,用於選擇數據源中的記錄
da.Fill(ds);//將從數據庫中獲取的數據添加到DataSet內
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview綁定數據源進行顯示
sda.Close();//斷開數據庫的連接,很重要!

結果如下:

 

  

(7)datagridview數據顯示調整

以數據全部顯示為例

comm.CommandText = "select * from data1";//選取data1
da.SelectCommand = comm;//官方定義:獲取或設置SQL語句或存儲過程,用於選擇數據源中的記錄
da.Fill(ds);//將從數據庫中獲取的數據添加到DataSet內
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview綁定數據源進行顯示
sda.Close();//斷開數據庫的連接,很重要!
dgv.Columns[2].DataPropertyName = ds.Tables[0].Columns[3].ToString();
//將數據庫第三列的數據顯示在datagridview的第四列--標題不會改變

結果如下:

  

調整列:

comm.CommandText = "select * from data1";//選取data1
da.SelectCommand = comm;//官方定義:獲取或設置SQL語句或存儲過程,用於選擇數據源中的記錄
da.Fill(ds);//將從數據庫中獲取的數據添加到DataSet內
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview綁定數據源進行顯示
sda.Close();//斷開數據庫的連接,很重要!
dgv.Columns[2].DataPropertyName = ds.Tables[0].Columns[3].ToString();
//將數據庫第三列的數據顯示在datagridview的第四列--標題不會改變
dgv.Columns[3].DataPropertyName = ds.Tables[0].Columns[2].ToString();
//將數據庫第四列的數據顯示在datagridview的第三列--標題不會改變

結果如下:

  

暫時就這些了,以后學會其他的再續上。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM