第十四章 資料庫應用程式 14.1 ADO.NET簡介 14.4 資料的單筆巡覽、新增、 修改、刪除

Slides:



Advertisements
Similar presentations
ADO.NET – 连接数据库. 2 课程地位 STB SQL Server XML PSPM ASP.NET Oracle OOAD Computer Base HTML&JavaScript OOP\Java C C SQL Base JSP/Servlet EJB/WebService C#
Advertisements

欢迎各位 Nice to Meet U.
雄獅旅遊集團 產學合作人才培育計畫 說明會.
武汉库得克 软件有限公司 公司简介 发展机遇 特点 一家专注于质量管理平台和整体 解决方案的提供商
Database Management System 資料庫管理系統
第21章 .NET报表设计 (时间:1.5次课,3学时).
硕士论文开题报告 煤炭企业物流信息系统的 研究与设计 指导老师: 学生姓名: 学 号:
有道妇幼保健综合管理系统软件 版本号:V1.0.
散文選及習作 [墨池記] 曾鞏 國二甲 S 洪國勛 指導教授:胡翰平 老師.
避開鳥事、走好運! 懂卜卦的人,一輩子不吃虧!
資料庫系統 曾俊雄.
第8章 设计数据库应用网站 本章讲述的主要内容 8.1 数据库基础知识 8.2 使用数据库系统 8.3 SQL查询基础
Access数据库知识 安丘市职业中专 雷云龙.
第六章 数据库和ADO.NET 褚龙现 软件学院.
當那時候,末底改坐在朝門,王的太監中有兩個守門的,辟探和提列,惱恨亞哈隨魯王,想要下手害他。(斯2:21)
在线考试系统 答辩人: 朱允昌、朱碧云、张海燕 汇报时间: 指导老师: 任艳、徐怡 软件应用与开发类
面向对象程序设计 (Visual C# .NET)
转正述职报告 乐恩公司 史航
本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載
第1章 程式語言與Visual Basic的基礎
CH10.
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
第ㄧ章 認識 VB 2008 與主控台應用程式 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
第 2 章 SQL Server 2008 R2資料庫安裝設定與管理
Microsoft .NET 第4組 十月15, 2002 B 陳東傑 B 蔣佳勳
第 3 章 SQL Server 2000 伺服器管理初步.
Visual C# 2010 程式設計經典 第15章 ADO .NET與資料工具.
第16章 Windows Form與資料繫結 16-1 資料繫結的基礎 16-2 在專案新增資料來源 16-3 使用資料來源建立單筆編輯表單
淺談Visual C# 程式設計 國立台灣師大附中 李啟龍 Jason.
第15章 数据报表与数据图表.
当那时候,末底改坐在朝门,王的太监中有两个守门的,辟探和提列,恼恨亚哈随鲁王,想要下手害他。(斯2:21)
第1章 .NET与C# 为什么要设计一门新的编程语言? C#在微软的.Net平台中占据什么样的地位?
ADO.NET.
第20章 LINQ 資料查詢技術 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或拷貝.
課程名稱:資料庫系統 授課老師:李春雄 博士
第2章 ADO.NET 2.0概述.
Visual Studio IDE基本操作 建國科技大學 資管系 饒瑞佶.
组长:吴蔚 项目组成员:吴蔚,邱丁兰,汪琳莺
第2章 Visual FoxPro 简介 Visual FoxPro概述 Visual FoxPro设计工具
第8章 数据的排序、搜 索和过滤.
数据保护技术(完整性、并发性、安全性和数据库恢复)
开发Web Services 客户端程序 杨永智 MCT/MVP 微软校园大使.
操作数据库 C#程序设计课程组.
移动电子商务 第十二章 Windows Mobile应用案例 倚动软件工厂实验室.
使用ADO.NET访问数据 数据库连接 C#程序设计课程组.
模板调整技巧.
快递单模板的制作.
《网上报告厅》使用说明 北京爱迪科森教育科技股份有限公司.
C# 程序设计教程 同济大学计算机系基础学科组
Connection对象 访问数据库的第一步是建立连接,只有建立连接,才可能实现 在数据库和应用程序之间移动数据。 ADO提供了连接对象:
第 8 章 VB.NET与数据库应用程序 本章主要内容: ADO.NET体系结构; VB.NET与SQL Server数据库的连接;
Empower for MircoSoft ISV
数据库技术与应用 (开学篇) 同济大学.
订单打印模板调整技巧.
Excel - 九十七年度教職員工資訊教育訓練 董建弘.
第五讲 酒店客房管理系统(一) 教育部“十二五”职业教育国家规划教材
普通高速模板的制作与调整.
SQL Server Mobile 2005 程序开发(三)
第1章 SQL Server 2005概述 教学提示:SQL Server 2005是微软的下一代数据管理和分析解决方案,它给企业级应用数据和分析程序带来更好的安全性、稳定性和可靠性,使得它们更易于创建、部署和管理,从而可以在很大程度上帮助企业根据数据做出更快、更好的决策,提高开发团队的生产力和灵活度,以及在减少总体IT预算的同时,能够扩展IT基础架构以更好地满足多种需求。
21世纪高职高专规划教材 C#语言程序设计 李继武 彭德林 主 编 张 珑 赵 松 周建辉 副主编
通讯录管理系统设计 常州工程职业技术学院 计算机技术系.
第 10 章 ADO.NET與XML.
1 打开 SQL Server 2005 安装盘,单击 SPLASH.HTA 文件进行安装,安装界面如图所示。
ASP.NET实用教程 清华大学出版社 第9章数据库应用 教学目标 教学重点 教学过程 2019年5月3日.
有道售后客户投诉情况管理系统软件 软件用户手册.
IT DNA- 微軟MVP、資深IT人胡百敬 資訊產業全攻略!IT知識工作者聯手推薦! 資訊新鮮人》 專業資訊人》 知識工作者》
批次請(休)假單 功能路徑:[請假作業專區]→[批次請(休)假單] 功能說明:提供使用者線上申請/維護 多天、不連續請(休)假
C# 匿名委派 + Lambda + Func 建國科技大學 資管系 饒瑞佶.
MenuStrip by Szeto CY Visual C# 2008.
安裝 Visual C Express Edition
Presentation transcript:

第十四章 資料庫應用程式 14.1 ADO.NET簡介 14.4 資料的單筆巡覽、新增、 修改、刪除 第十四章 資料庫應用程式 14.1 ADO.NET簡介 14.4 資料的單筆巡覽、新增、 修改、刪除 14.2 使用SQL Server Express 建立資料庫 14.5 BindingNavigator控制項 14.3 第一個資料庫應用程式 14.6 資料庫的關聯查詢 備註:可依進度點選小節

14.1 ADO .NET簡介 ADO .NET 是微軟 .NET 的資料庫存取架構。 採離線存取的方式。 ADO .NET 可分成:  .NET Data Provider 是存取資料來源的一組類別程式庫 包含 Connection、DataAdapter、Command、  DataReader 物件 DataSet 是記憶體中的資料庫。 目前 ADO .NET 最新版本為 3.5 版。

擷取的資料表填入到記憶體中的DataSet資料集

將異動的資料表存(寫)回資料庫時

上面架構圖透過 Visual C# 2008 整合開發環境中 提供的資料工具:  控制項  控制項  控制項 透過這些控制項配合 [資料集設計工具] 快速建立ADO .NET資料庫應用程式,且自動產生Connection、DataAdapter、Command、DataSet 物件的相關程式碼。

BindingSource 控制項 提供連接資料庫,將取得資料庫中的記錄一次放入 記憶體中的 DataSet,以及將記憶體中的DataSet 資料一次寫回指定資料庫中。 DataGridView 控制項 可用來繫結顯示目前 DataSet 中的資料。 BindingNavigator 控制項 提供巡覽記憶體 DataSet 功能,如第一筆、上一筆 下一筆、最未筆的巡覽操作;也可以新增、刪除、 修改記憶體 DataSet 的資料。

14.2 使用SQL Express 建立資料庫 Visual C# 2008 Express 內建可讓使用者建立 Microsoft SQL Server 2008 Express Edition (簡稱SQL Server Express) 。 SQL Server Express 功能強大而可靠的資料庫管理工具, 可透過 Visual C# 2008 直接管理 SQL Server Express 物件。 如建立資料庫、資料表、檢視表、預存程序…等。 SQL Server Express 可用來存放視窗應用程式用戶端 及ASP .NET Web 應用程式和本機資料的存放區,且提供豐富 功能、資料保護及提高存取效能。 SQL Server Express很適合學生、SOHO 族和 個人工作室使用, 可免費隨應用程式重新散發。

14.2.1 如何建立SQL Server Express資料庫 練習設計一個名稱為 Database1.mdf 的資料庫。 Step1 新增名稱為「CreateDB」的 Windows Form 應用程式專案。 Step2 執行功能表的【專案(P)/加入新項目(W)】指令開啟「加入新項目」 視窗,請選取 服務架構資料庫 選項,並將 設為 Database1. mdf,將此 SQL Server Express 資料庫檔案儲存 於專案中。

14.2.2 認識資料表欄位的資料型別 在建立資料表前需知資料表欄位可允許使用資料型別

14.2.3 如何建立 SQL Server Express 資料庫的資料表 員工資料表有六個欄位,員工編號為主索引欄位:

Step1 延續上節CreateDB專案範例建立上面指定欄位。 上機 Step1 延續上節CreateDB專案範例建立上面指定欄位。 Step2 執行功能表的【檢視(V)/其他視窗(E)/資料庫總管(D)】 指令開啟「資料庫總管」視窗,請按 展開鈕,使專案連接到 Database1.mdf 資料庫:

Step3 新增 員工資料表,並新增員工編號、姓名、信箱、薪資、 雇用日期、是否已婚六個欄位,並將員工編號設為主索引欄位。

在新增欄位名稱為「員工編號」,欄位資料型別設為nvarchar(10)。

分別新增姓名、信箱、薪資、雇用日期、是否已婚五個欄位名稱以及對應的資料型別。

將員工編號欄位設為主索引鍵欄位。

按全部儲存鈕,將資料表名稱設為「員工」資料表。

Step4 再開啟「員工」資料表的設計畫面 主索引鍵圖示

14.2.4 如何將資料輸入到 SQL Server Express資料表內 練習輸入幾筆員工的記錄到員工資料表內。 Step1 延續上面「CreateDB」專案範例。 Step2 專案可連接到 Database1.mdf 資料庫。 Step3 員工資料表按滑鼠右鍵由快顯功能表執行 「顯示資料表資料(S)」進入資料表記錄的輸入 畫面。

Step4 輸入三筆員工記錄資料,主索引鍵欄位資料不可以重複。 Step5 完成輸入資料後,按 全部儲存鈕將所輸入的 員工記錄儲存。

14.3 第一個資料庫應用程式 練習使用 Visual C# 2008 整合開發環境中所提供的 資料工具 、 、 控制項: - 透過這些控制項配合 [資料集設計工具] 連接 Database1.mdf 資料庫的員工資料表。 - 快速建立 ADO .NET 資料庫應用程式。 - 自動產生Connection、DataAdapter、Command、 DataSet 物件的相關程式碼。

使用資料工具 和 及 建立下圖簡易的員工資料庫應用程式。 透過 BindingSource 擷取 Database1 使用資料工具 和 及 建立下圖簡易的員工資料庫應用程式。 透過 BindingSource 擷取 Database1.mdf 員工資料表的記錄 並放入「員工DataGridView」內。 當使用者新增、修改、刪除「員工DataGridView」內的員工 資料後,可按 鈕將「員工DataGridView」內的員工 資料一次寫回 Database1.mdf的員工資料表。

執行情形

資料表欄位

Step 1 延續上面「CreateDB」專案,或新增名稱為「EmployeeDB」的 Windows Form 應用程式專案。 上機 Step 1 延續上面「CreateDB」專案,或新增名稱為「EmployeeDB」的 Windows Form 應用程式專案。 Step2 新增 BindingSource 控制項 Step3 連接資料來源

bindingSource1 連接書附光碟 chap14 資料夾下的Database1 bindingSource1 連接書附光碟 chap14 資料夾下的Database1.mdf;再將該資料庫中的「員工」資料表 放入 database1DataSet 資料集物件中。

Step4 建立 DataGridView 顯示員工資料

01 private void Form1_Load(object sender, EventArgs e) 02 { 03 // TODO: 這行程式碼會將資料載入 'database1DataSet.員工' 資料表。 04 //您可以視需要進行移動或移除。 05 this.員工TableAdapter.Fill(this.database1DataSet.員工); 06 } Step5 執行程式

Step6 加入 按鈕並撰寫程式碼 01 private void Form1_Load(object sender, EventArgs e) 02 { 03 // TODO: 這行程式碼會將資料載入 'database1DataSet.員工' 資料表。 04 //您可以視需要進行移動或移除。 06 this.員工TableAdapter.Fill(this.database1DataSet.員工); 07 } 08 09 private void btnUpdate_Click(object sender, EventArgs e) 10 { 11 this.員工TableAdapter.Update(this.database1DataSet.員工); 12 }

Step7 執行程式,按 鈕

14.4 資料的單筆巡覽、新增、刪除、修改 提供下面成員可讓您操作資料表的記錄, 例如資料記錄的新增、刪除、修改、取得資料總筆數 取得資料目前位置以及提供移動記錄的方法:

製作如下圖簡易的資料庫應用程式。您可以執行功能表 瀏覽項目來進行資料第一筆、上一筆、下一筆、最未筆 的切換;執行功能表編輯項目可以進行新增、刪除資料; 當員工資料編修完成可執行功能表的 [更新到資料庫] , 將記憶體的資料一次寫回 Database1.mdf 的員工資料表。

Step1 新增名稱為「EditDB1」的Windows Form 應用程式專案。 Step2 使用bindingSource1連接Database1.mdf;再將 員工資料表 加到 database1DataSet 。 Step3 顯示員工單筆資料

Step4 建立功能表選項

Step5 撰寫程式碼 FileName : EditDB1.sln 01 void RecordData() 02 { 03 顯示記錄ToolStripMenuItem.Text = "第" + (員工BindingSource.Position + 1).ToString() + "第, 共" + 員工BindingSource.Count.ToString() + "筆"; 04 } 06 private void Form1_Load(object sender, EventArgs e) 07 { 08 // TODO: 這行程式碼會將資料載入 'database1DataSet.員工' 資料表。 09 //您可以視需要進行移動或移除。 10 this.員工TableAdapter.Fill(this.database1DataSet.員工); 11 RecordData(); 14 private void 第一筆ToolStripMenuItem_Click(object sender, EventArgs e) 15 { 16 員工BindingSource.MoveFirst(); 17 RecordData(); 18 }

20 private void 上一筆ToolStripMenuItem_Click(object sender, EventArgs e) 21 { 22 員工BindingSource.MovePrevious(); 23 RecordData(); 24 } 26 private void 下一筆ToolStripMenuItem_Click(object sender, EventArgs e) 27 { 28 員工BindingSource.MoveNext(); 29 RecordData(); 30 } 32 private void 最末筆ToolStripMenuItem_Click(object sender, EventArgs e) 33 { 34 員工BindingSource.MoveLast(); 35 RecordData(); 36 } 38 private void 新增ToolStripMenuItem_Click(object sender, EventArgs e) 39 { 40 try 41 { 42 員工BindingSource.AddNew(); } 44 catch (Exception ex) 45 { 46 MessageBox.Show(ex.Message); 47 } 48 }

50 private void 刪除ToolStripMenuItem_Click(object sender, EventArgs e) 51 { 52 員工BindingSource.RemoveAt(員工BindingSource.Position); 53 } 54 55 private void 更新到資料庫ToolStripMenuItem_Click(object sender, EventArgs e) 56 { 57 try 58 { 59 員工BindingSource.EndEdit(); 60 員工TableAdapter.Update(database1DataSet); 61 MessageBox.Show("資料更新成功"); 62 Form1_Load(sender, e); } 64 catch (Exception ex) 65 { 66 MessageBox.Show(ex.Message); 67 } 68 }

69 70 private void 結束ToolStripMenuItem_Click(object sender, EventArgs e) 71 { 72 Application.Exit(); 73 }

14.5 BindingNavigator 控制項 提供巡覽記憶體 DataSet 的功能。 如第一筆、上一筆、下一筆、最未筆的巡覽操作。 因 BindingSource 物件可操作記憶體的 DataSet, 只要將 BindingNavigator 控制項的 BindingSource 屬性 指定要操作的 BindingSource 物件,可透過BindingNavigator 控制項直接操作 BindingSource 物件 對應的 DataSet。

試使用BindingNavigator控制項來巡覽、新增、俢改、 刪除「員工」資料表的資料。  按 鈕,可在記憶體 DataSet 新增一筆記錄  按 鈕,可在記憶體 DataSet 刪除一筆記錄  當編修 DataSet 資料後可按「更新」功能項目, 將記憶體 DataSet 資料一次寫回 Database.mdf 員工資料表中;透過 工具列 可巡覽 DataSet 的資料。

新增名稱為 EditDB2 的 Windows Form 應用程式專案。 Step2 上機 Step1 新增名稱為 EditDB2 的 Windows Form 應用程式專案。 Step2 使用 bindingSource1 連接 Database1.mdf ; 再將「員工」資料表加入到database1DataSet中。 Step3 顯示員工單筆資料

Step4 在表單建立 BindingNavigator 控制項

Step5 撰寫程式碼 FileName : EditDB2.sln 01 private void Form1_Load(object sender, EventArgs e) 02 { 03 // TODO: 這行程式碼會將資料載入 'database1DataSet.員工' 資料表。 04 //您可以視需要進行移動或移除。 05 this.員工TableAdapter.Fill(this.database1DataSet.員工); 06 } 07 08 private void toolStripButton1_Click(object sender, EventArgs e) 09 { 10 try 11 { 12 員工BindingSource.EndEdit(); 13 員工TableAdapter.Update(database1DataSet); 14 MessageBox.Show("資料更新成功"); 15 } 16 catch(Exception ex) 17 { 18 MessageBox.Show(ex.Message); 19 } 20 }

14.6 資料庫的關聯查詢 關聯式資料庫透過相同的欄位,將兩個有關係資料表 關聯在一起。 好處是可減少重複登錄記錄到資料表內。 常見 Access、SQL Server、MySQL…等資料庫 軟體都屬於關聯式資料庫,資料庫軟體內的資料表 皆可進行關聯。 在ADO .NET 提供 DataSet 物件好像是記憶體中資料庫。 DataSet中的 DataTable 物件就好像是記憶體中資料表。 可將記憶體 DataTable 物件進行關聯即可進行資料庫 關聯查詢。

使用資料工具 取得 Northwind.mdf 資料庫 的 訂貨主檔和 訂貨明細 資料表所有資料,然後將所有 資料填入記憶體 DataSet中的訂貨主檔 DataTable 及 訂貨明細 DataTable物件,接著再將兩個 DataTable 物件的「訂單號碼」欄位進行關聯。當您再下圖選取 表單中上方的 DataGridView 訂貨主檔中的某一筆訂單,下方的 DataGridView 會顯示該筆訂單號碼對應的訂貨 明細所有資料。

資料表欄位 Northwind.mdf 資料庫中的「訂貨主檔」及「訂貨明細」資料表。 訂貨主檔的主索引為「訂單號碼」; 訂貨明細的主索引是「訂單號碼」 及「產品編號」組合。 欄位格式

新增名稱為「RelationDB」的 Windows Form 應用程式專案。 Step2 上機 Step1 新增名稱為「RelationDB」的 Windows Form 應用程式專案。 Step2 新增 BindingSource 控制項連接 Northwind.mdf 資料來源

- 操作後表單下方出現 bindingSource1 及northwindDataSet 物件。 Step4 關聯兩個 DataTabl e物件,產生一個關聯物件名稱為「訂貨主檔_訂貨明細」。

將關聯物件名稱設為「訂貨主檔_訂貨明細」,讓父資料表「訂貨主檔」的「訂單號碼」欄位關聯到子資料表的「訂貨明細」的「訂單號碼」欄位。

NorthwindDataSet.xsd 檔案(資料集設計工具)內的訂貨主檔 及訂貨明細的資料結構描述會產生關聯物件圖示。

Step5 建立繫結資料來源 執行功能表的【資料(A)/顯示資料來源(S)】指令開啟「資料來源」視窗。 將資料來源視窗內的「訂貨主檔」DataTable 及訂貨 主檔下所關聯的「訂貨明細」DataTable 放入表單中。

FileName :RelationDB.sln 01 private void Form1_Load(object sender, EventArgs e) 02 { 03 // TODO: 這行程式碼會將資料載入 'northwindDataSet.訂貨明細' 資料表。 04 //您可以視需要進行移動或移除。 05 this.訂貨明細TableAdapter.Fill(this.northwindDataSet.訂貨明細); 06 // TODO: 這行程式碼會將資料載入 'northwindDataSet.訂貨主檔' 資料表。 07 //您可以視需要進行移動或移除。 08 this.訂貨主檔TableAdapter.Fill(this.northwindDataSet.訂貨主檔); 09 訂貨主檔DataGridView.Dock = DockStyle.Top; 10 訂貨明細DataGridView.Dock = DockStyle.Fill; 11 }