• 沒有找到結果。

Access 資料庫 (1)

N/A
N/A
Protected

Academic year: 2022

Share "Access 資料庫 (1)"

Copied!
51
0
0

加載中.... (立即查看全文)

全文

(1)

1

ASP.NET 網頁設計入門(使用 C#)

講師︰唐士軒

CSIE NTU

(2)

Access 資料庫 (1)

z建立資料庫

z選擇 [檔案] 中的 [開新檔案] 會跳出開新檔 案視窗,在視窗新增部份選取 [空白資料庫]

z設定完檔案儲存位置後會跳出下圖視窗

(3)

Access 資料庫 (2)

z建立資料表

z選擇資料庫視窗中的 [使用設計檢視建立資

料表]

(4)

Access 資料庫 (3)

z儲存資料表

z當關閉資料表視窗時,系統即會詢問是否要 儲存資料表等資訊

z資料表操作

z開啟

–輸入資料 z設計檢視

–修改資料表

欄位設定

(5)

ADO .NET

zADO.NET 為 .NET Framework 所提供的 類別,專門用來存取『資料儲存體』中 的資料

z『資料儲存體』包含資料庫或非資料庫 型式的儲存體

zEx︰MSSQL、Access、Excel、XML

zADO.NET 採用中斷連線的方式,減低系

統工作負載

(6)

.NET 資料提供者

z .NET 資料提供者為存取資料來源的一組類別 z .NET Data Provider

z SQL .NET Data Provider

z命名空間︰System.Data.SqlClient

z可用資料庫︰MS-SQL

z OLE DB .NET Data Provider

z命名空間︰System.Data.OleDb

z可用資料庫︰ Dbase、FoxPro、Excel、Access、Oracle、

Access…

z ODBC .NET Data Provider

z需至微軟網站另外下載

z可用資料庫︰ MySQL…

(7)

Connection 物件

z ADO.NET 的 Connection 物件用來連接資料來 源,代表使用者與資料來源間的連線

z 利用『連線字串』來描述所要連線的資料來源 z 連接 Access 資料庫連線字串格式

z Provider–Microsoft.Jet.OLEDB.4.0 z Data source–資料庫檔案所在路徑

z OleDbConnection 類別

z 常用屬性

zConnectionString–取得或設定連線字串 (可於建構式設定)

z 常用方法

zOpen–開啟資料庫連線

zClose–關閉連線

(8)

實例探討 sample6-a1 (1)

z 程式功能

z 建立與資料庫間的連線

z 程式內容

private void Page_Load(object sender, System.EventArgs e) {

Response.Write("尚未連線..<br>");

string dataSource = Server.MapPath("member.mdb");

string connectionStr = "Provider=Microsoft.Jet.OLEDB.4.0;

Data Source=" +dataSource;

(9)

實例探討 sample6-a1 (2)

z 程式內容

OleDbConnection conn =

new OleDbConnection(connectionStr);

Response.Write("\r\n進行連線..<br>");

conn.Open();

Response.Write("\r\n連線成功..<br>");

conn.Close();

Response.Write("\r\n關閉連線..<br>");

}

(10)

Command 物件

z Command 物件可以用來執行所要對資料庫操 作的命令

z 建構式中可傳入 SQL 命令及 Connection 物件 z 常用方法

z ExecuteReader

z用來執行 Command 物件中的 SQL 查詢語法– SELECT

z取得資料後會回傳一個 DataReader 物件供使用者瀏覽資料

z ExecuteNonQuery

z用來執行 Command 物件中的 SQL 新增、刪除及修改語

法–INSERT、DELETE 及 UPDATE

(11)

DataReader 物件

z DataReader 物件可用來逐一取得資料表中的資料 內容

z 可利用 物件["欄位名稱"] 來取得特定欄位資料 z 常用屬性

z FieldCount–取得資料總筆數

z 常用方法

z Read–讀取下一筆資料,已至檔案結尾回傳 false,

尚未到達檔案結尾回傳 true z Close–關閉釋放此物件資源

z GetName–取得欄位名稱

z GetValue–取得欄位資料內容

(12)

SQL 結構化查詢語言

zSQL 結構化查詢語言是一套標準的語言,

用以管理或存取資料庫 zSQL 主要包含二部份

zDML 資料處理語言

z包含 SELECT、INSERT、UPDATE 及 DELETE…

zDDL 資料定義語言

z包含 CREATE、DROP、ALTER 及 GRANT…

(13)

SQL 語法–SELECT

zSELECT 查詢命令可用來取得資料表中 的資料

z語法

zSELECT 欄位名稱1, 欄位名稱2, … FROM 資料表名稱 WHERE 條件式 ORDER BY 欄 位名稱 (字串需以單引號 ' 括住表示之)

z用法

zselect * from student

zselect id,name from student order by id desc

zselect id from student where id<10

(14)

實例探討 sample6-a2 (1)

z 程式功能

z 會員管理系統

z 程式內容–WebForm1.aspx

private void loginBTN_Click(object sender, System.EventArgs e)

{

if(idTB.Text!= "" && pwTB.Text != "") {

if(check(idTB.Text, pwTB.Text))

Response.Redirect("WebForm2.aspx");

else

messageLB.Text = "帳號密碼輸入錯誤!!";

(15)

實例探討 sample6-a2 (2)

z程式內容–WebForm1.aspx

else

messageLB.Text = "帳號密碼不可空白!!";

}

private bool check(string id, string pw) {

string dataSource = Server.MapPath("member.mdb");

string connectionStr =

@"Provider=Microsoft.Jet.OLEDB.4.0;

Data Source=" +dataSource;

OleDbConnection conn = new

OleDbConnection(connectionStr);

(16)

實例探討 sample6-a2 (3)

z 程式內容–WebForm1.aspx

string sqlStr = "select * from member " ;

sqlStr+= "where id='" + id + "' and pw='"+pw+"'";

OleDbCommand command = new OleDbCommand(sqlStr, conn);

conn.Open();

OleDbDataReader dataReader = command.ExecuteReader();

bool flag = dataReader.Read();

dataReader.Close();

conn.Close();

return flag;

}

(17)

實例探討 sample6-a2 (4)

z程式內容–WebForm2.aspx

private void Page_Load(object sender, System.EventArgs e) {

string dataSource = Server.MapPath("member.mdb");

string connectionStr =

@"Provider=Microsoft.Jet.OLEDB.4.0;

Data Source=" +dataSource;

OleDbConnection conn = new

OleDbConnection(connectionStr);

(18)

實例探討 sample6-a2 (5)

z 程式內容–WebForm2.aspx

string sqlStr = "select * from member ";

OleDbCommand command = new OleDbCommand(sqlStr, conn);

conn.Open();

OleDbDataReader dataReader = command.ExecuteReader();

memberDG.DataSource = dataReader;

memberDG.DataBind();

dataReader.Close();

conn.Close();

}

(19)

課堂練習 sample6-b1

z程式功能

z建立討論區主題列表畫面

z基本概念

z建立一資料表,內含主題、內容、文章發表 者、瀏覽人數及回覆人數等欄位

z利用 Access 填入幾筆資料

z利用 select 語法取得資料表中資料

z需引用命名空間 System.Data.OleDb

(20)

SQL 語法–INSERT

zINSERT 新增命令用來新增一筆資料至指 定資料表中

z語法

zINSERT INTO 資料表名稱 ( 欄位名稱1, 欄位 名稱2, …) VALUES ('資料1', '資料2', …)

z用法

zINSERT INTO student(id, name) VALUES(3,

'Ives')

(21)

實例探討 sample6-a3 (1)

z程式功能

z新增會員帳號

z程式內容–WebForm1.aspx

private string connectionStr;

private OleDbConnection conn;

private OleDbCommand command;

(22)

實例探討 sample6-a3 (2)

z程式內容–WebForm1.aspx

private void Page_Load(object sender, System.EventArgs e) {

string dataSource = Server.MapPath("member.mdb");

connectionStr = @"Provider=Microsoft.Jet.OLEDB.4.0;

Data Source=" +dataSource;

conn = new OleDbConnection(connectionStr);

command = new OleDbCommand("", conn);

upDG();

}

(23)

實例探討 sample6-a3 (3)

z程式內容–WebForm1.aspx

private void upDG() {

command.CommandText = "select * from member";

conn.Open();

OleDbDataReader dataReader = command.ExecuteReader();

memberDG.DataSource = dataReader;

memberDG.DataBind();

dataReader.Close();

conn.Close();

}

(24)

實例探討 sample6-a3 (4)

z 程式內容–WebForm1.aspx

private void addDB(string id, string pw) {

command.CommandText =

"insert into member(id, pw)values('"+ id +"','"+ pw +"')";

conn.Open();

command.ExecuteNonQuery();

conn.Close();

upDG();

}

(25)

課堂練習 sample6-b2

z程式功能

z延續 sample6-b1 加入一超連結至 WebForm2 z在 WebForm2 中設計發表新文章頁面

z基本概念

z利用 insert 語法新增文章至資料表中

z畫面只提供文章主題和發言人輸入功能

(26)

SQL 語法–DELETE

zDELETE 刪除命令用來刪除資料表中的 指定資料

z語法

zDELETE FROM 資料表名稱 WHERE 條件式

z用法

zDELETE FROM student WHERE id = 3 AND

name = 'Ives'

(27)

實例探討 sample6-a4 (1)

z程式功能

z購物清單

z勾選欲購買商品

z按下確定按鈕後列出總價

z程式內容

z利用樣板資料行來加入 CheckBox 控制

項於 DataGrid 中

(28)

實例探討 sample6-a4 (2)

z在 DataGrid 的

屬性產生器視

窗中,加入一

個樣板資料行

及二個繫結資

料行

(29)

實例探討 sample6-a4 (3)

z在 DataGrid 控

制項中點選右

鍵,可在『編輯

樣板』選項中選

取欲編輯的樣板

資料行

(30)

實例探討 sample6-a4 (4)

z將 CheckBox 控制 項加入

ItemTemplate 當中

(31)

實例探討 sample6-a4 (5)

z程式內容

private void Page_Load(object sender, System.EventArgs e)

{

string dataSource = Server.MapPath("item.mdb");

string connectionStr =

@"Provider=Microsoft.Jet.OLEDB.4.0;

Data Source=" +dataSource;

OleDbConnection conn = new OleDbConnection(connectionStr);

OleDbCommand command = new OleDbCommand("", conn);

(32)

實例探討 sample6-a4 (6)

z 程式內容

command.CommandText = "select * from item";

conn.Open();

OleDbDataReader dataReader = command.ExecuteReader();

itemDG.DataSource = dataReader;

itemDG.DataBind();

dataReader.Close();

conn.Close();

}

(33)

實例探討 sample6-a4 (7)

z 程式內容

private void purchaseBTN_Click(object sender, System.EventArgs e) {

int total = 0;

foreach(DataGridItem item in itemDG.Items) {

if(((CheckBox)item.Cells[0].FindControl("deleteCB")).Checked) {

total+= int.Parse(item.Cells[2].Text);

} }

totalLB.Text = total.ToString();

}

(34)

課堂練習 sample6-b3

z程式功能

z延續 sample6-b2

z製作討論區主題刪除功能

z基本概念

z利用 delete 語法刪除資料表中指定主題

z在 DataGrid 控制項中加入 CheckBox 欄位,

讓使用者點選欲刪除的主題

z設計一刪除按鈕,當使用者點選後刪除

DataGrid 控制項中已被勾選的文章主題

(35)

SQL 語法–UPDATE

zUPDATE 更新命令用來修改資料表中的 資料

z語法

zUPDATE 資料表名稱 SET 欄位1 = 資料1, 欄 位2 = 資料2, … WHERE 條件式

z用法

zUPDATE student SET name = 'Bob' WHERE

id = 2

(36)

實例探討 sample6-a5 (1)

z程式功能

z藝人簡介

z點選藝人名稱導至該藝人詳細資料頁面

z程式內容

z利用 DataGrid 中的樣板資料行加入 一

LinkButton 及 Image 控制項,用來連結藝人

詳細資料頁面及顯示藝人照片縮圖

(37)

實例探討 sample6-a5 (2)

z在 DataGrid

的屬性產生器

視窗中,加入

二個樣板資料

行及一個繫結

資料行

(38)

實例探討 sample6-a5 (3)

z在 DataGrid 控制項 中點選右鍵,可在

『編輯樣板』選項

中選取欲編輯的樣

板資料行

(39)

實例探討 sample6-a5 (4)

z在樣板編輯視窗 中,從工具箱拖曳 LinkButton 控制項至 ItemTemplate 項目中 z將該 LinkButton 控

制項 CommandName

屬性設定為 select

(40)

實例探討 sample6-a5 (5)

z點選 LinkButton 控制項的

(DataBindings) 屬 性,在自訂繫結 運算式視窗中,

加入繫結語法 DataBinder.Eval(

Container.DataItem,

“name")

(41)

實例探討 sample6-a5 (6)

z同樣繫結樣板資 料行中的 Image 控制項

DataBinder.Eval

(Container.DataI

tem,"image")

(42)

實例探討 sample6-a5 (7)

z 程式內容–WebForm1.aspx

private void Page_Load(object sender, System.EventArgs e) {

string dataSource = Server.MapPath("member.mdb");

string connectionStr = @"Provider=Microsoft.Jet.OLEDB.4.0;

Data Source=" +dataSource;

OleDbConnection conn = new OleDbConnection(connectionStr);

string sqlStr = "select * from member " ;

OleDbCommand command = new OleDbCommand(sqlStr, conn);

(43)

實例探討 sample6-a5 (8)

z 程式內容–WebForm1.aspx

conn.Open();

OleDbDataReader dataReader =

command.ExecuteReader();

memberDG.DataSource = dataReader;

memberDG.DataBind();

dataReader.Close();

conn.Close();

}

(44)

實例探討 sample6-a5 (9)

z 程式內容–WebForm1.aspx

private void memberDG_SelectedIndexChanged(object sender, System.EventArgs e)

{

Response.Redirect("WebForm2.aspx?name="+

((LinkButton)memberDG.SelectedItem.FindControl("idLB")).Text );

}

(45)

實例探討 sample6-a5 (10)

z 程式內容–WebForm2.aspx

private void Page_Load(object sender, System.EventArgs e) {

string name = Request.QueryString["name"];

string dataSource = Server.MapPath("member.mdb");

string connectionStr =

@"Provider=Microsoft.Jet.OLEDB.4.0;

Data Source=" +dataSource;

OleDbConnection conn = new

OleDbConnection(connectionStr);

(46)

實例探討 sample6-a5 (11)

z 程式內容–WebForm2.aspx

string sqlStr = "select * from member " ; sqlStr+= "where name='" + name + "'";

OleDbCommand command =

new OleDbCommand(sqlStr, conn);conn.Open();

OleDbDataReader dataReader = command.ExecuteReader();

if(dataReader.Read()) {

nameLB.Text = dataReader["name"].ToString();

countryLB.Text = dataReader["country"].ToString();

pictureIMG.ImageUrl = dataReader["image"].ToString();

}

dataReader.Close();

conn.Close();

(47)

課堂練習 sample6-b4

z 程式功能

z 延續 sample6-b3 z 更新瀏覽人數資料

z 基本概念

z 利用 DataGrid 中的樣板資料行加入 一 LinkButton 控制項

z 點選該控制項時連接資料庫更新瀏覽人數欄位資料 z 利用 dataReader["欄位名稱"] 取得資料表中資料並

列印至網頁

(48)

DataList 控制項 (1)

zDataList 控制項可使用樣板與樣式定義的 格式來顯示資料

z常用屬性

zDataSource–設定資料來源

z常用方法

zDataBind–進行資料繫結動作

(49)

DataList 控制項 (2)

z在 DataList 控制項上點選右鍵,選擇欲

編輯的樣板區塊

(50)

DataList 控制項 (3)

z 項目樣板的編輯畫面中,

可以在 ItemTemplate 中 設定欲顯示的資料格式 z 可利用 HTML 控制項中

的 Table 控制項進行排版 動作

(最好將 Table 格式設定

好後,再拖曳至 DataList

的 ItemTemplate 項目中)

(51)

課堂練習 sample6-b5

z 程式功能

z 延續 sample6-b4

z 利用 DataList 控制項顯示文章內容

z 基本概念

z 利用 HTML 控制項中的 Table 控制項設定欲顯示畫面 z 在 Table 控制項中放置 Web 控制項中的 Label 控制

項,設定該 Label 控制項的資料繫結運算式,以顯示 資料表中資料

z 最後將 Table 控制項拖曳至 DataList 的 ItemTemplate 項目中

z 主程式需設定 DataList 的 DataSource 屬性及進行 DataBind 動作

參考文獻

相關文件

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

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel

銷貨單號碼 發票日期 運貨日期 銷貨總額 營業稅 品號 品名/規格 單價 數量 B 第一次正規化格式.

private void Page_Load(object sender, System.EventArgs e) {{. string dataSource

通用類別(Generic Classes) - Code Reuse 的另一種發揮.. -

zSELECT 欄位名稱1, 欄位名稱2, … FROM 資料表名稱 WHERE 條件式 ORDER BY 欄 位名稱 (字串需以單引號 '

private void closeBTN_Click(object sender, System.EventArgs

Session.Add(string name, object value) z將新項目加入 Session 當中。..