第七章

Similar documents
untitled

untitled

投影片 1

untitled

untitled

untitled

導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

教案模板4-2

第 一 章 資料庫概念

使用手冊

2 ADO.NET Internet 1.2

11 天 山 区 区 环 卫 清 运 队 机 械 工 程 师 4011 C 1 不 限 不 限 机 电 具 有 两 以 工 作 经 12 天 山 区 乌 鲁 木 齐 市 第 15 小 会 计 4012 C 1 不 限 不 限 会 计 财 会 财 电 算 化 临 床 医 预 防 医 公 共 卫 生 与

投稿類別:資訊類

基于ECO的UML模型驱动的数据库应用开发1.doc

目錄

一 新增 SQL Express 2008 資料庫 步驟一 : 首先, 利用 VB 新增一個 Windows Form 應用程式的專案, 專案名稱為 MyDB 專案名稱為 MyDB 步驟二 : 接下來, 請執行 VB 功能表上的 專案 / 加入新項目, 此時, 請在 加 入新項目 的對話方塊中, 選

ASP.NET实现下拉框二级联动组件

(Microsoft PowerPoint -

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

臺銀人壽「98年九至十一職等人員甄試」


Microsoft Word - 4.doc

职 位 类 别 : 测 试 工 程 师 工 作 经 验 或 实 习 经 历 : 不 限 岗 位 要 求 : 1. 本 科 及 其 以 上 学 历, 计 算 机 相 关 专 业 2014 届 毕 业 生 ; 2. 实 习 时 间 要 求, 尽 量 一 周 五 个 工 作 日 ; 3. 熟 悉 Wind

信息

Chapter 00 導論

( )... 5 ( ) ( )

AutoCAD 用戶如何使用 ArchiCAD

多媒體應用 13 新增專案並完成版面配置 <ExMusic01> <activity_main.xml> ImageView ID imgplay ImageView ID imgstop ImageView ID imgfront TextView ID txtsong TextView ID t

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

投影片 1

NIIT APP T ECH,,,,,, C++ : C++, C++,,, C++,,,,, : ,,,, ;,, ( CIP) C++ /,,. :, (21.) ISBN C..

Microsoft PowerPoint - VB14.ppt

Microsoft Word - 關聯性資料庫.doc

10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD

untitled

季刊9web.indd

The golden pins of the PCI card can be oxidized after months or years

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

<463A5CC2A4B6ABD1A7D4BA5CBDCCD1A7D6B8C4CFD7DC5CA1B C B3CCD0F2C9E8BCC6A1B7BFCEB3CCD6B8C4CF2E646F63>

大綱 資料庫系統 Database System 1. 資料庫及 SQL 導論 2. 網頁資料庫 3. 雲端建站 結合資料庫及雲端的網頁設計 1 資料庫簡介 甚麼是資料庫? 資料庫 (Database) 為相關資料的集合 關聯式資料庫 (Relational Database) 為以關聯表格 (Re

untitled

Microsoft PowerPoint - course10.ppt

第6章  数据库技术基础

天津天狮学院关于修订2014级本科培养方案的指导意见

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

幻灯片 1

XXXXXXXX

营 销 策 划 岗 部 门 招 聘 职 位 招 聘 人 数 岗 位 职 责 基 本 要 求 岗 位 任 职 要 求 6 参 与 项 目 产 品 研 究 客 户 需 求 研 究 竞 争 环 境 研 究 价 格 研 究 等 项 目 市 场 研 究 ; 7 公 司 经 纪 业 务 的 品 牌 管 理, 对

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

untitled

Chapter 3 Camera Raw Step negative clarity +25 ] P / Step 4 0 ( 下一頁 ) Camera Raw Chapter 3 089

<4D F736F F D20657A646C312D D30385FA670A6F3B35DA C A8C3B14EB8EAAEC6B04FBFFDA8ECBBB7BADDB8EAAEC6AE772E646F63>

1 IT IT IT IT Virtual Machine, VM VM VM VM Operating Systems, OS IT

一步一步教你搞网站同步镜像!|动易Cms

Microsoft Word - 面向应用能力,构建师范院校计算机公共课程 “三层次教育”课程体系new.doc

1. 概 述 1.1 扫 描 对 象 序 号 1 IP 地 址 域 名 1.2 漏 洞 等 级 分 布 风 险 类 型 数 量 高 风 险 1 中 风 险 5 低 风 险 4 信 息 类 4 7% 29% 高 风 险 36% 中 风 险 低 风


A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

untitled

Microsoft Office SharePoint Server MOSS Web SharePoint Web SharePoint 22 Web SharePoint Web Web SharePoint Web Web f Lists.asmx Web Web CAML f

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

高 职 计 算 机 类 优 秀 教 材 书 目 * 序 号 书 号 (ISBN) 书 名 作 者 定 价 出 版 / 印 刷 日 期 ** 配 套 资 源 页 码 计 算 机 基 础 课 计 算 机 应 用 基 础 刘 升 贵 年 8 月

软件概述

助 理 建 筑 师 / 建 筑 师 ( 方 案 ) 1 重 点 院 校 建 筑 学 本 科 及 以 上 毕 业,1-3 年 甲 级 设 计 院 工 作 经 验, 有 优 秀 的 方 案 设 计 能 力 及 成 果 表 现 能 力 ; 2 热 爱 设 计 敬 业 负 责 积 极 主 动 有 良 好 的

Win-GRAF-User_Manual-chinese

untitled

User Group SMTP

書面

7 DataSet DataSet TableColumnDataSet DataSet NOTE DataSet DataAdapterDataSetDataAdapter DataSet DataSetDataSetDataSet NorthwindDataSet DataSet Dim Nor

Microsoft Word - ASP2DB1002.doc


輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

FileMaker 15 ODBC 和 JDBC 指南

第一章 章标题-F2 上空24,下空24

目錄 C ontents Chapter MTA Chapter Chapter

Microsoft Word - 书目文件.doc

PHOTON Web Hosting

附件3:


子學習3 電子學習的定位 傳統電子學習 與 新世代電子學習 SAMS 台上講者從左至右 : 吳薇薇女士 羅陸慧英教授 佘孟先生 李芳樂教授 從 電子銀行服務 到 電子學習 題追3 專蹤電

Microsoft Word - 13院21号.doc

上海市教育考试院关于印发新修订的

* 2

1


Flexsim: (Open DataBase Connectivity, ODBC)

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

Microsoft Word 级第二专业学士学位培养计划.doc

安裝與使用 SQL Server 2014



软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式 软 件 工 程 专 业 课 程 类 型...7

目 录 第 五 部 分 第 六 部 分 第 七 部 分 第 八 部 分 投 标 邀 请 投 标 人 须 知 附 表 评 标 方 法 和 评 分 细 则 项 目 需 求 和 技 术 方 案 要 求 1

FileMaker 16 ODBC 和 JDBC 指南

Microsoft PowerPoint - ASP_NET_08

「西醫基層總額支付委員會《第28次委員會議紀錄

投影片 1

進階搜尋引擎.doc

目 录 目 录... I 1 背 景 介 绍 指 导 思 想 和 建 设 目 标 建 设 内 容 系 统 定 位 系 统 架 构 信 息 交 换 平 台 建 立 云 计 算 应

Transcription:

6-1 ADO.NET 簡介 ADO.NET 是微軟.NET 平台所提供的新世代資料存取技術,ADO.NET 的原文是 ActiveX Data Objects for the.net Framework (ADO.NET); 而 ADO.NET 是包含在.NET Framework 之中, 可以透過 ADO.NET 的資料存取技術來存取包括資料庫 XML 和應用程式的資料 所以本章將會利用到 SQL 四個基本語法搭配 ADO.NET 的技術, 透過程式去執行資料庫的查詢 新增 修改與刪除的動作 6-2 ADO.NET 資料庫存取技術 在使用 ADO.NET 技術來取存資料庫時, 有兩種方式可以選擇 ( 表 6-1) 方式 精靈化 程式化 說明凡是以精靈設定方式完成資料庫的存取動作, 都可歸類到 精靈化 方式這個範疇 就是以 工具箱 的 資料 中的 SqlDataAdapter 資料配接器組態精靈, 以精靈化的選擇設定方式, 以拖曳及設定的方式完成 此方式優點是快速簡單 凡是以程式化的方式撰寫一切所需的資料庫存取程式碼, 都可歸類到 程式化 方式這個範疇 就是完全以程式設計的方式完成, 從建立資料庫連線 選擇資料配接器或直接資料庫存取 把資料填入 DataSet 等等, 一直到完成資料存取目的, 全部透過程式設計師一行一行的編寫, 此方式優點是彈性高及功能強大 表 6-1: ADO.NET 取存方式 上面兩個方式是筆者對於 ADO.NET 存取方式的分類, 之所以區分這兩種方式的原因, 是因為 ADO.NET 的技術在剛開始學習入門時, 由於初學者先天對於 C#.NET 的基本語法就不太熟, 後天加上對資料庫運作的原理方式又不是很懂, 所以有蠻多初學者對於如何以 ADO.NET 技術來對資料庫做存取產生的很大的障礙 在此給各位讀者一個建議, 請多加練習第四章 DataGrid 控制項與資料庫查詢動作, 反覆熟練, 對於資料庫連線的程序及概念會愈來愈清楚, 一直到可以用 程式化 方式寫出 精靈化 方式所做的一切動作, 這時對 ADO.NET 資料庫的操作存取才可以說是成功了 6-2

ASP.NET 資料庫存取技術 I 6 I 6-3 資料庫讀寫應用實例 接下來的例子將示範如何以 ADO.NET 程式完成對資料庫的查詢 新增 修 改與刪除, 而對資料庫存取動作其 SQL 語法有分固定語法與帶參數語法兩種 ( 表 6-2) 語法 固定語法 帶參數語法 說明所謂的固定語法是 SQL 語法中所有的項目與條件式都是固定的, 也就是很明確指定 where 條件式的條件 帶參數語法就是不把 SQL 語法的欄位值寫死, 只是預留一個定義, 留待後面以程式的方式來動態將欄位值傳入, 這種做法是最有彈性的, 也比較能符合現實世界的需求 表 6-2: SQL 料庫存取語法 6-3-1 固定語法 而固定語法又分為二種, 一種是單純的查詢 (select), 另一種是對資料庫做異動 (insert update 與 delete ), 然而差異也只有 ExecuteReader() 與 ExecuteNonQuery() 這兩個方法的區別了 型態 語法 SqlConnection conn=new SqlConnection("data source=localhost;initial catalog=mydb;user id=sa;password=12345"); Select conn.open(); SqlCommand cmd=new SqlCommand("select 陳述式 ",conn); SqlDataReader dr=cmd.executereader(); Insert Update Delete SqlConnection conn=new SqlConnection("data source=localhost;initial catalog=mydb;user id=sa;password=12345"); conn.open(); SqlCommand cmd=new SqlCommand("SQL 陳述式 ",conn); cmd.executenonquery(); 表 6-3: ADO.NET 固定語法 6-3

! 程式說明 :! SqlConnection SqlConnection 是用來建立資料庫連線, 而 SqlConnection conn=new SqlConnection( 字串 ) 這種型式是物件導向的一種寫法, 表示 conn 是繼承 SqlConnection 這個類別,conn 繼承 SqlConnection 這個類別後就具有資料庫連線所需的種種設定, 而 new 則是表示初始化 conn 這個物件, 並為其配置記憶體, 關於物件導向方面的知識, 在後面會有專門的章節來討論 而字串 "data source=localhost;initial catalog=mydb;user id=sa;password =12345" 含有四個參數設定, 其作用是作資料庫連線所需的資訊, 說明如下 : # data source=localhost 是指定來源 SQL Server 伺服器的位置, 如果是本機的話則用 localhost 或是一個點. 的符號來表示 ; 另外也可用 IP 或是主機名稱來指定 # initial catalog=mydb 是指定要使用這個 SQL Server 中的哪一個資料庫, 而 mydb 是我們之前所建立的一個資料庫 # user id 是指定與 SQL Server 連線所使用的帳號, 在此是以 sa 帳號來做登入, 但在 SQL Server 中 sa 帳號擁有最大權限, 為了教學方便故使用 sa 帳號, 在正式環境請另建一個帳號來替代, 否則權限太大會有安全上的問題 # password 則是 user id 所指定帳號的密碼! conn.open() conn.open() 則表示是將 conn 資料庫連線正式開啟, 若只有定義 SqlConnection 而沒有開啟, 是無法從這個連線讀到任何資料的! SqlCommand SqlCommand 是下達 SQL 語法或預儲程序 (store procedure) 的用途, 可以將 SQL 語法定義在 SqlCommand( 字串,conn) 的字串中, 而字串後面接的 conn 就是指定要使用這個連線來執行 SQL 語法, 連線是一定要指定的, 否則電腦會不知要使用哪個連線! SqlDataReader SqlDataReader 稱之為資料讀取器, 其用於讀取資料, 也就是 SqlCommand 中若使用 select 讀取資料的 SQL 語法就要搭配 SqlDataReader 6-4

ASP.NET 資料庫存取技術 I 6 I! ExecuteReader() 如果 SqlCommand 中使用的是 select 的 SQL 語法, 就要搭配 ExecuteReader() 這個方法來使用,ExecuteReader 是由 Execute 與 Reader 二個單字所組成, 前者是執行, 後者是讀取器的意思, 顧名思義 select 的 SQL 語法當然要和 ExecuteReader() 來做配對! ExecuteNonQuery() 當您使用 insert update 或 delete 時, 請和 ExecuteNonQuery() 做搭配, 其 NonQuery 意思是非查詢, 那除了 select 叫做查詢外, 其他三個就是非查詢, 所以 ExecuteNonQuery() 是和 insert update 或 delete 來做搭配! 對於 ExecuteReader() 和 ExecuteNonQuery() 搭配使用時機請務必弄清楚, 否則執行 SQL 命令時會產生錯誤 只要知道每行程式是做什麼用的就可以了, 不必將解說細節一一背起來, 倒是固定語法一定要記起來, 因為這就是 ASP.NET 資料庫的核心程式所在, 所有的應用幾乎都是以這個資料庫存取語法做應用變化 範例 6-1: 以 Select 查詢資料庫資料本範例要利用 Select 語法, 透過 ADO.NET 技術從資料庫讀取資料, 並以 DataGrid 控制項將資料顯示出來! 步驟一 : 新增專案請在 VS.NET 開發工具中新增一個專案, 選擇 ASP.NET WEB 應用程式, 並命名為 VC6-1! 步驟二 : 版面配置 1. 如圖 6-1 所示, 從 工具箱 中拖曳進一個 DataGrid 控制項, 並拖放到適當位置 6-5

圖 6-1: 拖曳控制項 2. 調整 DataGrid 控制項的大小及位置, 如圖 6-2 圖 6-2: 設定 DataGrid 控制項 6-6

ASP.NET 資料庫存取技術 I 6 I 3. 設定 DataGrid 控制項的格式化請點選 DataGrid 控制項, 再點選 屬性視窗 下面的 自動格式化, 選擇您想要的格式來美化 DataGrid, 然後按 確定 按鈕結束,DataGrid 控制項就會有個美麗的外觀 ( 圖 6-3) 圖 6-3: DataGrid 控制項的格式化! 步驟三 : 建立程式碼 請點選 方案總管 視窗中的 WebForm1.aspx 程式, 按滑鼠右鍵選取 檢視 程式碼 ( 圖 6-4) 6-7

圖 6-4: 檢視程式碼 之後會出現一個 WebForm1.aspx.cs 的程式碼後置檔案 ( 圖 6-5) 圖 6-5: 程式碼後置檔案 6-8

ASP.NET 資料庫存取技術 I 6 I 1. 先加入 using System.Data.SqlClient; 命名空間, 此段程式碼是手動寫 SQL Server 資料庫連線會用到的命名空間 2. 這裡要在程式載入時, 自動執行資料庫讀取及 DataGrid 顯示資料, 請在 Page_Load 程式區塊內加入程式碼, 程式碼如下 : private void Page_Load(object sender, System.EventArgs e) { // 以 SqlDataReader dr 來讀取 料 SqlConnection conn=new SqlConnection("data source=localhost;initial catalog=mydb;user id=sa;password=12345"); conn.open(); SqlCommand cmd=new SqlCommand("select * from product",conn); SqlDataReader dr=cmd.executereader(); } // 以 DataGrid 來顯示 SqlDataReader dr 的 料 DataGrid1.DataSource=dr; DataGrid1.DataBind();! 程式說明 :! 有的讀者可能會問 : 為何須要先加入 using System.Data.SqlClient; 這行程式碼? 這是因為要告訴.NET 系統, 程式所要連線的資料庫為 MS SQL Server 資料庫 然而為何.NET 不事先替使用者做好這一段的設定呢? 是因為資料庫有許多種類, 如 SQL Server Access Oracle DB2 MySQL 等等, 然而 VS.NET 並不知道您會使用哪一種的資料庫, 所以就留給使用者來自行做決定! 在 4-2-5 節時就曾約略介紹了 DataGrid 這個控制項, 當中曾提及 DataGrid 的資料來源常見的有兩種, 一是 DataSet( 前面章節已介紹過了 ), 另一是 SqlDataReader, 也就是這個範例所使用到的技術, 將 DataGrid 資料來源屬性 DataSource 設定為 SqlDataReader 的物件, 最後再做個 DataBind(), 就能夠將資料顯現在 DataGrid 控制項上了 6-9

! 執行畫面說明 : 請在 VC6-1 專案上按滑鼠右鍵執行 建置, 以編譯檢查程式是否正確 若無錯誤產生則按 F5 開始執行程式, 圖 6-6 畫面會呈現一個以 DataGrid 控制項來顯示的資料查詢結果 圖 6-6: 執行結果畫面 範例 6-2: 以 Insert 新增資料庫記錄本範例要利用 Insert 語法, 透過 ADO.NET 技術在資料庫中新增一筆記錄, 並以 DataGrid 控制項將結果顯示出來! 步驟一 : 新增專案請在 VS.NET 開發工具中新增一個專案, 選擇 ASP.NET WEB 應用程式, 並命名為 VC6-2! 步驟二 : 版面配置 1. 如圖 6-7 所示, 從 工具箱 拖曳進一個 DataGrid 控制項 6-10

ASP.NET 資料庫存取技術 I 6 I 圖 6-7: 拖曳控制項 2. 調整 DataGrid 控制項的大小及位置, 如圖 6-8 圖 6-8: 設定 DataGrid 控制項 6-11

3. 設定 DataGrid 控制項的格式化 請點選 DataGrid 控制項, 再點選 屬性視窗 下面的 自動格式化, 選擇 任一格式來美化 DataGrid, 然後按 確定 按鈕結束 ( 圖 6-9) 圖 6-9: DataGrid 控制項的格式化! 步驟三 : 建立程式碼 請點選 方案總管 視窗中的 WebForm1.aspx 程式, 按滑鼠右鍵選取 檢視 程式碼 ( 圖 6-10) 6-12

ASP.NET 資料庫存取技術 I 6 I 圖 6-10: 檢視程式碼 之後會出現一個 WebForm1.aspx.cs 的程式碼後置檔案 ( 圖 6-11) 圖 6-11: 程式碼後置檔案 6-13

1. 先加入 using System.Data.SqlClient; 命名空間, 這是手動寫 SQL Server 資料庫 連線會用到的 2. 這裡要在程式載入時, 自動執行資料記錄的新增, 接著並以 DataGrid 來顯示 新的資料記錄, 請在 Page_Load 程式區塊內加入程式碼, 程式碼如下 : private void Page_Load(object sender, System.EventArgs e) { // 新增㆒筆記錄 SqlConnection conn1=new SqlConnection("data source=localhost; initial catalog=mydb;user id=sa;password=12345"); conn1.open(); SqlCommand cmd1=new SqlCommand("insert into product ProductID,ProductName,Quantity,Price) values ('M001',' 芒果汁 ',100,25)",conn1); cmd1.executenonquery(); // 以 DataGrid 來顯示 SqlConnection conn2=new SqlConnection("data source=localhost; initial catalog=mydb;user id=sa;password=12345"); conn2.open(); SqlCommand cmd2=new SqlCommand("select * from product",conn2); SqlDataReader dr=cmd2.executereader(); } DataGrid1.DataSource=dr; DataGrid1.DataBind(); 6-14