visual basic 程式設計

42
Visual Basic 程程程程 程程 程程程 [email protected] 程程程程程程程程程程程程程

Upload: risa-guerrero

Post on 02-Jan-2016

65 views

Category:

Documents


7 download

DESCRIPTION

Visual Basic 程式設計. 講師:戴志華 [email protected] 國立台灣大學電機工程研究所. 第十三章 資料庫. 基本觀念. 資料庫( database): 一群相關的資料( data) 資料庫管理系統:用來維護、管理資料庫的軟體 Access SQL Server MySQL ……. 應用程式. 資料庫管理系統. 資料庫. 關聯式資料庫( Relational Database). 目前最常用的資料庫形式 兩大元素 表格( table) 關聯( relation). 表格( table). Schema. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Visual Basic  程式設計

Visual Basic 程式設計

講師:戴志華[email protected]國立台灣大學電機工程研究所

Page 2: Visual Basic  程式設計

第十三章 資料庫

Page 3: Visual Basic  程式設計

3

基本觀念

資料庫 (database): 一群相關的資料(data)資料庫管理系統 : 用來維護、管理資料庫的軟體 Access SQL Server MySQL ……

資料庫

資料庫管理系統應用程式

Page 4: Visual Basic  程式設計

4

關聯式資料庫 (Relational Database)

目前最常用的資料庫形式兩大元素 表格 (table) 關聯 (relation)

Page 5: Visual Basic  程式設計

5

表格 (table)

Table:Employee

代號 姓名 部門 薪資 部門位置

00001 李小輝 A001 10000 台北

00002 連阿戰 A001 8000 台北

00003 陳阿扁 A002 11000 高雄

Row

ColumnPrimary Key

Schema

Page 6: Visual Basic  程式設計

6

表格 (cont’d)

Row: 又稱 record 一筆記錄Column: 又稱 attribute 欄位Primary key: 用來區分不同的記錄 代碼、身份證號碼……Schema: 用來描述每個欄位的規格 字元、數字…… 可否重覆

Page 7: Visual Basic  程式設計

7

表格 (cont’d)

Universal table: 把所有的東西都放在同一個表格中

缺點 : 資料重覆量大 更新速度慢

代碼 姓名 姓別 住址 電話 部門 部門位置

部門電話

Page 8: Visual Basic  程式設計

8

正規化 (Normalization)

將相關的欄位組成一個 table

相關的表格用關聯 (relation) 連接 相連的表格有數量對應關係

代碼 姓名 姓別 住址 電話 部門

部門 部門位置 部門電話∞1

Page 9: Visual Basic  程式設計

9

Access

檔案 / 開新檔案 / 資料庫使用設計檢視建立資料表

Page 10: Visual Basic  程式設計

10

Page 11: Visual Basic  程式設計

11

Access(cont’d)

欄位大小格式必須要有資料索引Key

Page 12: Visual Basic  程式設計

12

使用資料庫元件

一般控制項 Data

資料感知元件 Text Label ……

資料控制項

ListBoxText

Database

記錄

查詢 / 讀取

常用 SQL

網路連線

Page 13: Visual Basic  程式設計

13

使用 ADO 元件新增控制項 Microsoft ADO Data Control 6.0

Adodc Microsoft DataGrid Control 6.0

DataGrid

按選單的 project->component

Page 14: Visual Basic  程式設計

14

Adodc

按右鍵 ADODC 屬性

Page 15: Visual Basic  程式設計

15

Adodc工具出現兩個新的控制項

按一下adodc 控制項

Page 16: Visual Basic  程式設計

16

Adodc(cont’d)

提供者 Microsoft

Jet 4.0 OLE DB Provider

連接 選擇資料庫

Page 17: Visual Basic  程式設計

17

Adodc(cont’d)

查取表格 : 修改RecordSource CommandType=2-

adCmdTable Table=Authors

下指令查詢 : 修改RecordSource CommandType=1.ad

CmdText CommandText:SQL 指令

設定資料來源是哪一個表格

Page 18: Visual Basic  程式設計

18

DataGrid

新增資料感知元件 新增 data grid 控制項

Adodc的

caption

Page 19: Visual Basic  程式設計

19

DataGrid設定資料感知元件 DataSource= 資料控制項

Ex. 設定 data grid 的屬性DataSource=adodc1

Adodc的

caption

Page 20: Visual Basic  程式設計

20

DataGrid(cont’d)

滑鼠在dataGrid 上按右鍵

Data Grid 進階設定 Delete/Insert: 刪除、增加顯示的欄位

切割

Page 21: Visual Basic  程式設計

21

DataGrid(cont’d)Data Grid 切割

Page 22: Visual Basic  程式設計

22

DataGrid(cont’d)

Retrieve Fields: 依資料庫內容決定欄位

Page 23: Visual Basic  程式設計

23

其他可和 acodc1 配合使用的控制項

使用資料感知元件 Text Label

DataSource DataField

DataList DataCombo

RowSource ListField

Microsoft DataList Control

Page 24: Visual Basic  程式設計

24

Exercise

讀取學生基本資料表1. 新增學生基本資料的 mdb 檔2. 從 mdb 檔讀取所有學生資料表,顯示在

form 上3. Go!!

Page 25: Visual Basic  程式設計

25

這樣就夠了嗎?

如果我只列出要一部份符合條件的資料怎麼辦?

Page 26: Visual Basic  程式設計

26

Structured Query Language

資料庫存取的標準語言 (ANSI)有些資料庫管理系統使用修改過的SQL建立資料庫表格,在表格內更新資料,刪除資料,查詢資料庫,控制資料的存取,與資料庫所有的管理

Page 27: Visual Basic  程式設計

27

SQL(cont’d)

Select 欄位名 [, 欄位名…… ]From 表格名例Select AuthorFrom AuthorsSelect DISTINCT(Author)From Authors

Select Author From Authors

Page 28: Visual Basic  程式設計

28

SQL(cont’d)

在 adodc 中 RecordSource=1-adCmdText CommandText=select author from

authors

SQL 命令

Page 29: Visual Basic  程式設計

29

SQL(cont’d)

所得的結果存在 adodc 的 recordset 中條件式 select: 使用 whereSelect Au_ID, Author From Authors Where Au_ID>100

可搭配 AND, OR 使用Select Au_ID, Author From Authors

Where AuID>100 AND Au_ID<200

Page 30: Visual Basic  程式設計

30

SQL(cont’d)

Like: 相似字串Select Au_ID, Author From Authors

Where Author Like ‘A%’

Like 後面的字串樣板用單引號括起來% 代表任意字元 _ 代表單一數目或字元

Ex: Like ‘2___3’ Like ‘_2%3’

Page 31: Visual Basic  程式設計

31

SQL(cont’d)

IS NULL: 該欄位無值 Select * from Employee

Where pager IS NULL

Page 32: Visual Basic  程式設計

32

SQL(cont’d)

Arithmetic operator: +,-,*,/ Ex: Select Salary + Bonus from Employee

where Salary*10 > 600000

Page 33: Visual Basic  程式設計

33

動態產生、執行 SQL

Adodc.recordsource=“SQL 語法”Adodc.refresh

為了美觀, adodc1的 visible 可設

為 false

Page 34: Visual Basic  程式設計

34

Private Sub Command1_Click() Dim min, max As Integer Dim name As String Dim sqlcmd As String min = Int(Text1.Text) max = Int(Text2.Text) name = Text3.Text sqlcmd = “select au_id, author “+ _ “from authors “ + _ “where (au_id>=“ + Str(min) + _ “ and au_id<=“ + Str(max) + “) + _ “ and author like (‘” + name + “’)” Adodc1.RecordSource = sqlcmd Adodc1.RefreshEnd Sub

Page 35: Visual Basic  程式設計

35

動態產生、執行 SQL(cont’d)Select au_id, author

From authors

Where (au_id>=1

and au_id<=100) and

author Like ‘b%’

“Select au_id, author “ + _

“From authors “ + _

“Where (au_id>=1 and “+

“au_id<=100) and “ + _

“author Like ‘b%’”

Page 36: Visual Basic  程式設計

36

動態產生、執行 SQL(cont’d)

“Select au_id, author ” + _

“From authors ” + _

“Where (au_id>=” +str(min)+ “ and ” + _

“au_id<=” +str(max)+ “) and ” + _

“author Like ‘” +name+ “’”

Page 37: Visual Basic  程式設計

37

ODBC 與專業資料庫

使用 ODBC 可以讓程式設計師不去理會資料庫的位置、形態 在那個 server…… 是 Oracle, SQL

Server 或是Access……

資料庫控制項

資料庫

ODBC

Page 38: Visual Basic  程式設計

38

ODBC 與資料庫 (cont’d)

專業資料庫 (Lock, Cache, Backup) SQL Server, Oracle…… 常有獨立的伺服器 效能較好,功能較強一般資料庫 Access, FoxPro…… 只定義檔格式

執行 SQL 的方式不同

Page 39: Visual Basic  程式設計

39

使用專業資料庫

Page 40: Visual Basic  程式設計

40

使用專業資料庫 (cont’d)

Page 41: Visual Basic  程式設計

41

使用 ODBC(cont’d)

控制台 ODBC 資料來源

Page 42: Visual Basic  程式設計

42