目前流行的數(shù)據(jù)庫介紹
在Windows操作系統(tǒng)中,Microsoft Access和Microsoft SQL Server是最常見的數(shù)據(jù)庫,它們同時(shí)也應(yīng)用于網(wǎng)絡(luò)程序應(yīng)用系統(tǒng)。一般情況下,Microsoft Access數(shù)據(jù)庫比較適合小型或家庭型的應(yīng)用程序,而Microsoft SQL Server一般比較適合大型的應(yīng)用程序。下面以Microsoft Access 2000和Microsoft SQL Server 2000介紹這兩類數(shù)據(jù)庫。
1.Microsoft Access數(shù)據(jù)庫
Access 2000是Microsoft強(qiáng)大的桌面數(shù)據(jù)庫平臺(tái)的第六代產(chǎn)品,是32位Access的第三個(gè)版本。Microsoft Access及其Jet數(shù)據(jù)庫引擎占據(jù)了整個(gè)桌面數(shù)據(jù)庫市場(chǎng)。
2.Microsoft SQL Server數(shù)據(jù)庫
Microsoft SQL Server 2000數(shù)據(jù)庫是一個(gè)多關(guān)系數(shù)據(jù)管理系統(tǒng)。它不僅是一個(gè)完整的數(shù)據(jù)庫,而且具有強(qiáng)大的擴(kuò)展性。它是Windows操作系統(tǒng)最為流行的數(shù)據(jù)庫,比較適合小型、中型或大型應(yīng)用程序的后臺(tái)數(shù)據(jù)庫。它也適用于電子商務(wù)、數(shù)據(jù)倉庫和在線商業(yè)應(yīng)用程序等。
3.Oracle數(shù)據(jù)庫
Oracle數(shù)據(jù)庫一般比較適合超大型的行業(yè)領(lǐng)域,如電信、移動(dòng)、聯(lián)通、醫(yī)療保險(xiǎn)、郵政部門等。在行業(yè)領(lǐng)域,電信基本上使用Oracle數(shù)據(jù)庫和Sybase數(shù)據(jù)庫。
4.MySQL數(shù)據(jù)庫
MySQL數(shù)據(jù)庫是一種非常特別的數(shù)據(jù)庫。它以Web形式來體現(xiàn),也是基于Web訪問方式的數(shù)據(jù)庫。和其他數(shù)據(jù)庫相比,MySQL數(shù)據(jù)庫的最大特點(diǎn)是建立在Internet之上,用戶可以通過基于Web的查詢方式來訪問數(shù)據(jù)庫。MySQL數(shù)據(jù)庫除了運(yùn)行在Windows操作系統(tǒng)上之外,還可以運(yùn)行在Linux和UNIX操作系統(tǒng)上。MySQL數(shù)據(jù)庫一般采用的是客戶機(jī)/服務(wù)器體系結(jié)構(gòu)。
構(gòu)建數(shù)據(jù)庫系統(tǒng)的流程
構(gòu)建一個(gè)完整、高效的數(shù)據(jù)庫管理系統(tǒng)可以說是一個(gè)比較復(fù)雜的過程,通常包含以下5個(gè)基本步驟。
1.定義數(shù)據(jù)庫的目標(biāo)
這是構(gòu)建數(shù)據(jù)庫的第一步,也是構(gòu)建數(shù)據(jù)庫的起始點(diǎn)。在這一步,需要定義數(shù)據(jù)庫實(shí)現(xiàn)功能、目標(biāo)以及該系統(tǒng)運(yùn)行的環(huán)境,最終形成一個(gè)什么樣的數(shù)據(jù)庫管理系統(tǒng)。只有經(jīng)過這一步,后續(xù)的工作才可以開始。
2.?dāng)?shù)據(jù)庫的邏輯設(shè)計(jì)
這一步是從設(shè)計(jì)目標(biāo)和功能出發(fā),規(guī)劃出數(shù)據(jù)庫的邏輯設(shè)計(jì)。例如,設(shè)計(jì)數(shù)據(jù)庫中如何定義表以及表之間的關(guān)系。在某種程度上說,這一步和物理數(shù)據(jù)庫的設(shè)計(jì)及其實(shí)現(xiàn)無關(guān)。
3.?dāng)?shù)據(jù)庫的物理設(shè)計(jì)
這一步在數(shù)據(jù)庫的邏輯設(shè)計(jì)之上,把數(shù)據(jù)庫的邏輯設(shè)計(jì)轉(zhuǎn)化為數(shù)據(jù)庫的物理設(shè)計(jì),如確定數(shù)據(jù)庫需要哪些軟件和硬件。
4.?dāng)?shù)據(jù)庫的物理實(shí)現(xiàn)
這一步屬于項(xiàng)目的實(shí)現(xiàn)階段。它建立在數(shù)據(jù)庫的物理設(shè)計(jì)之上,設(shè)計(jì)實(shí)際的物理數(shù)據(jù)以及數(shù)據(jù)庫的服務(wù)器配置和存儲(chǔ)數(shù)據(jù)的程序代碼等。
5.復(fù)查構(gòu)建的數(shù)據(jù)庫
這一步為構(gòu)建數(shù)據(jù)庫的最后一步。在該步中,檢查和評(píng)定構(gòu)建的數(shù)據(jù)庫是否滿足第一步中的目標(biāo)及其要求,同時(shí)還可以制定維護(hù)和更新數(shù)據(jù)庫的實(shí)施方案。
構(gòu)建數(shù)據(jù)庫系統(tǒng)的流程如圖1-1所示。在實(shí)際設(shè)計(jì)中,有些步驟可能體現(xiàn)得不是很明顯。
?
圖1-1 構(gòu)建數(shù)據(jù)庫系統(tǒng)的流程圖
1.4 第一個(gè)數(shù)據(jù)庫管理系統(tǒng)
1.4.1 本系統(tǒng)的設(shè)計(jì)目標(biāo)
本系統(tǒng)使用Microsoft Access數(shù)據(jù)庫設(shè)計(jì)第一個(gè)數(shù)據(jù)庫管理系統(tǒng)。首先使用Access創(chuàng)建數(shù)據(jù)庫,它的名稱為MyFirstAccessDB。然后在該數(shù)據(jù)庫中創(chuàng)建一個(gè)數(shù)據(jù)表MyDataTable。該表包含主鍵ID(MyID)、字段名稱(MyName)、字段類型(MyType)和字段長(zhǎng)度(MyLength)4個(gè)字段。最后在該表中添加一些測(cè)試數(shù)據(jù)。
創(chuàng)建MyFirstAccessDB數(shù)據(jù)庫之后,需要?jiǎng)?chuàng)建一個(gè)ASP.NET應(yīng)用程序Example_1_1,用來訪問該數(shù)據(jù)庫,并實(shí)現(xiàn)顯示數(shù)據(jù)和修改數(shù)據(jù)等功能。
在本章節(jié)的最后,還將介紹ASP.NET應(yīng)用程序Example_1_1和數(shù)據(jù)庫MyFirstAccessDB的發(fā)布方法。
1.4.2 使用Access建立數(shù)據(jù)庫
1.打開Microsoft Office Access 2003
首先確認(rèn)您的計(jì)算機(jī)上是否已經(jīng)安裝了Microsoft Office Access 2003。如果沒有安裝,請(qǐng)讀者自行安裝,這里不再介紹它的安裝方法。如果已經(jīng)安裝好了Microsoft Office Access 2003,則依次選擇【開始】|【程序】|【Microsoft Office】|【Microsoft Office Access 2003】命令,彈出【Microsoft Access】對(duì)話框,如圖1-2所示。
?
圖1-2 Microsoft Access對(duì)話框
2.創(chuàng)建Access數(shù)據(jù)庫MyFirstAccessDB
(1)選擇【文件】|【新建】命令,【Microsoft Access】窗口在右邊顯示【新建文件】子對(duì)話框,如圖1-3所示。
?
圖1-3 打開【新建文件】子對(duì)話框
(2)單擊【新建文件】子對(duì)話框中【新建】下的【空數(shù)據(jù)庫】列表項(xiàng),彈出【文件新建數(shù)據(jù)庫】對(duì)話框。在【文件名】文本框中輸入數(shù)據(jù)庫名稱MyFirstAccessDB,如圖1-4所示。
?
圖1-4 打開Microsoft Office Access 2003的操作界面
(3)單擊【創(chuàng)建】按鈕創(chuàng)建空數(shù)據(jù)庫MyFirstAccessDB。此時(shí)彈出管理數(shù)據(jù)庫MyFirstAccessDB的對(duì)話框,如圖1-5所示。
?
圖1-5 創(chuàng)建好的空數(shù)據(jù)庫MyFirstAccessDB及其管理界面
3.創(chuàng)建數(shù)據(jù)表MyDataTable
在Access數(shù)據(jù)庫中,創(chuàng)建新數(shù)據(jù)表有3種方式,它們分別為“使用設(shè)計(jì)圖創(chuàng)建表”、“使用向?qū)?chuàng)建表”和“通過輸入數(shù)據(jù)創(chuàng)建表”。在此使用“使用設(shè)計(jì)圖創(chuàng)建表”方式創(chuàng)建表MyDataTable。
(1)雙擊【使用設(shè)計(jì)圖創(chuàng)建表】選項(xiàng),彈出創(chuàng)建表的輸入界面,在界面中依次添加MyID、MyName、MyType和MyLength 4個(gè)字段,分別表示字段ID、字段名稱、字段類型和字段長(zhǎng)度,并把MyID設(shè)為該表的主鍵,同時(shí)設(shè)置為自動(dòng)增1。操作界面如圖1-6所示。
(2)單擊保存按鈕,彈出【另存為】對(duì)話框。在【表名稱】文本框中輸入“MyDataTable”,如圖1-7所示。單擊【確定】按鈕即可創(chuàng)建表MyDataTable。最后在該表中添加所需要的數(shù)據(jù)。按照同樣方法可以創(chuàng)建該數(shù)據(jù)庫的其他數(shù)據(jù)表。其他表的創(chuàng)建方法在此不一一介紹。
?
圖1-6 創(chuàng)建新表MyDataTable
?
圖1-7 保存表MyDataTable
1.4.3 連接到數(shù)據(jù)庫
1.使用數(shù)據(jù)庫MyFirstAccessDB
本實(shí)例使用的數(shù)據(jù)庫名稱為MyFirstAccessDB,版本為Microsoft Access 2003中文版。該數(shù)據(jù)庫已經(jīng)在1.4.2節(jié)中創(chuàng)建。
2.創(chuàng)建新ASP.NET應(yīng)用程序
在Visual Studio .NET 2003集成開發(fā)環(huán)境中創(chuàng)建新的ASP.NET Web應(yīng)用程序,命名為Example_1_1。
3.設(shè)計(jì)頁面ConnectedAcDB.aspx
把應(yīng)用程序Example_1_1的默認(rèn)頁面WebForm1.aspx重命名為ConnectedAcDB.aspx。該頁面不需要添加任何ASP.NET服務(wù)器端控件或者客戶端控件,因此不再介紹它的設(shè)計(jì)界面。頁面ConnectedAcDB. aspx的HTML設(shè)計(jì)代碼如下:
《%@ Page language=“c#” Codebehind=“ConnectedAcDB.aspx.cs”
AutoEventWireup=“false” Inherits=“Example_1_1. ConnectedAcDB” %>
《HEAD>《title> Example_1_1:連接到Access數(shù)據(jù)庫《/title>《/HEAD>
《body MS_POSITIONING=“GridLayout”>
《form id=“Form1” method=“post” runat=“server”>
《/form>
《/body>
《/HTML>
4.設(shè)計(jì)訪問數(shù)據(jù)庫的連接字符串
把頁面ConnectedAcDB.aspx訪問數(shù)據(jù)庫的連接字符串存放在應(yīng)用程序的配置文件web.config中。程序代碼如下:
《appSettings>
《add key=“ACCESSCONNECTIONSTRING”
value=“Provider=Microsoft.Jet.OLEDB.4.0; Data Source=”>
《/add>
《/appSettings>
由于頁面ConnectedAcDB.aspx獲取連接字符串時(shí)需要使用類ConfigurationSettings,它被包含在名字空間System.Configuration中,因此需要引入該名字空間。頁面獲取連接字符串的程序代碼如下:
//引入名字空間
using System.Configuration;
//獲取連接字符串
private readonly string ACCESSCONNECTIONSTRING
=ConfigurationSettings.AppSettings[
“ACCESSCONNECTIONSTRING”].ToString();
5.設(shè)計(jì)頁面ConnectedAcDB.aspx的事件和函數(shù)
頁面ConnectedAcDB.aspx調(diào)用函數(shù)Page_Load(object sender,System.EventArgs e)初始化。該函數(shù)調(diào)用函數(shù)ConnectAccessDB()創(chuàng)建連接數(shù)據(jù)庫MyFirstAccessDB的連接字符串,并把連接信息顯示在頁面上。函數(shù)Page_Load(object sender, System.EventArgs e)和ConnectAccessDB()的程序代碼如下:
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
ConnectAccessDB(); //連接到MyFirstAccessDb數(shù)據(jù)庫
}
}
private void ConnectAccessDB()
{ //設(shè)置訪問數(shù)據(jù)庫的連接字符串
string accessString = ACCESSCONNECTIONSTRING
+ Server.MapPath(“MyFirstAccessDB.mdb”);
OleDbConnection accessConn = new OleDbConnection(accessString);
try
{
accessConn.Open(); //打開OLEDB數(shù)據(jù)庫的連接
Response.Write(“連接MyFirstAccessDB數(shù)據(jù)源成功!??!”);
//顯示連接成功信息
Response.Write(“《br>OLEDB數(shù)據(jù)庫連接的連接字符串:”
+ accessConn.ConnectionString);
Response.Write(“《br>OLEDB數(shù)據(jù)庫連接的數(shù)據(jù)庫名稱:”
+ accessConn.Database);
Response.Write(“《br>OLEDB數(shù)據(jù)庫連接的數(shù)據(jù)源:”
+ accessConn.DataSource);
Response.Write(“《br>OLEDB數(shù)據(jù)庫連接的數(shù)據(jù)庫驅(qū)動(dòng):”
+ accessConn.Provider);
Response.Write(“《br>OLEDB數(shù)據(jù)庫連接的服務(wù)器版本:”
+ accessConn.ServerVersion);
Response.Write(“《br>OLEDB數(shù)據(jù)庫連接的打開狀態(tài):”
+ accessConn.State.ToString());
//執(zhí)行數(shù)據(jù)庫的操作,如選擇、插入、刪除和更新等
accessConn.Close(); //關(guān)閉OLEDB數(shù)據(jù)庫的連接
Response.Write(“《br>《br>OLEDB數(shù)據(jù)庫連接的關(guān)閉狀態(tài):”
+ accessConn.State.ToString());
}
catch(Exception ex)
{
Response.Write(ex.Message); //拋出數(shù)據(jù)庫連接異常
}
}
設(shè)置頁面ConnectedAcDB.aspx為應(yīng)用程序的起始頁面。按F5鍵運(yùn)行后,出現(xiàn)如圖1-8所示的初始界面。
?
圖1-8 頁面ConnectedAcDB.aspx的初始界面
1.4.4 訪問并顯示數(shù)據(jù)庫中的數(shù)據(jù)
1.使用數(shù)據(jù)庫MyFirstAccessDB
本實(shí)例使用的數(shù)據(jù)庫名稱為MyFirstAccessDB,版本為Microsoft Access 2003中文版。該數(shù)據(jù)庫已經(jīng)在1.4.2節(jié)中創(chuàng)建。
2.設(shè)計(jì)頁面ShowData.aspx
在應(yīng)用程序Example_1_1中添加一個(gè)新的Web頁面,命名為ShowData.aspx。該頁面不需要添加任何ASP.NET服務(wù)器端控件或者客戶端控件。頁面ShowData.aspx的HTML設(shè)計(jì)代碼如下:
《%@ Page language=“c#” Codebehind=“ShowData.aspx.cs”
AutoEventWireup=“false” Inherits=“Example_1_1.ShowData” %>
《HEAD>《title> Example_1_1:連接到Access數(shù)據(jù)庫《/title>《/HEAD>
《body MS_POSITIONING=“GridLayout”>
《form id=“Form1” method=“post” runat=“server”>
《/form>
《/body>
《/HTML>
3.設(shè)計(jì)訪問數(shù)據(jù)庫的連接字符串
把頁面ShowData.aspx訪問數(shù)據(jù)庫的連接字符串存放在應(yīng)用程序的配置文件web.config中。程序代碼如下:
《appSettings>
《add key=“ACCESSCONNECTIONSTRING”
value=“Provider=Microsoft.Jet.OLEDB.4.0; Data Source=”>
《/add>
《/appSettings>
由于頁面ShowData.aspx獲取連接字符串時(shí)需要使用類ConfigurationSettings,它被包含在名字空間System.Configuration中,因此需要引入該名字空間。頁面獲取連接字符串的程序代碼如下:
using System.Configuration; //引入名字空間
//獲取連接字符串
private readonly string ACCESSCONNECTIONSTRING
=ConfigurationSettings.AppSettings[
“ACCESSCONNECTIONSTRING”].ToString();
4.設(shè)計(jì)頁面ShowData.aspx的事件和函數(shù)
頁面ShowData.aspx調(diào)用函數(shù)Page_Load(Object sender,System.EventArgs e)初始化。該函數(shù)調(diào)用函數(shù)ShowDBData()顯示數(shù)據(jù)庫MyFirstAccessDB的表MyDataTable中的數(shù)據(jù)。顯示的格式為表中的字段排列順序,同時(shí)還顯示連接信息。函數(shù)Page_Load(object sender, System.EventArgs e)和函數(shù)ShowDBData()的程序代碼如下:
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
ShowDBData(); //顯示數(shù)據(jù)庫MyFirstAccessDB中的數(shù)據(jù)
}
}
private void ShowDBData()
{ //設(shè)在訪問數(shù)據(jù)庫的連接字符串
string accessString = ACCESSCONNECTIONSTRING
+ Server.MapPath(“MyFirstAccessDB.mdb”);
string cmdText = “SELECT * FROM MyDataTable”; //創(chuàng)建獲取數(shù)據(jù)的SQL語句
//創(chuàng)建數(shù)據(jù)庫的連接和Command
OleDbConnection accessConn = new OleDbConnection(accessString);
OleDbCommand accessComm = new OleDbCommand(cmdText,accessConn);
//定義數(shù)據(jù)顯示的格式
string dataString = “《br>MyID MyName MyType My Length《br>”;
try
{ //打開OLEDB數(shù)據(jù)庫的連接
accessConn.Open();
Response.Write(“連接MyFirstAccessDB數(shù)據(jù)源成功!??!”);
//顯示數(shù)據(jù)庫中的信息
OleDbDataReader reca = accessComm.ExecuteReader();
while(reca.Read())
{ //獲取相應(yīng)數(shù)據(jù)
dataString += reca[“MyID”].ToString() +“ ”
+ reca[“MyName”].ToString()
+“ ” + reca[“MyType”].ToString() +“ ”
+ reca[“MyLength”].ToString();
dataString += “《br>”;
}
reca.Close();
Response.Write(dataString); //顯示數(shù)據(jù)庫中的內(nèi)容
accessConn.Close(); //關(guān)閉OLEDB數(shù)據(jù)庫的連接
}
catch(Exception ex)
{
Response.Write(ex.Message); //拋出數(shù)據(jù)庫連接異常
}
}
設(shè)置頁面ShowData.aspx為應(yīng)用程序的起始頁面。按F5鍵運(yùn)行后,出現(xiàn)如圖1-9所示的初始界面。
1.4.5 修改數(shù)據(jù)庫
1.使用數(shù)據(jù)庫MyFirstAccessDB
本實(shí)例使用的數(shù)據(jù)庫名稱為MyFirstAccessDB,版本為Microsoft Access 2003中文版。該數(shù)據(jù)庫已經(jīng)在1.4.2節(jié)中創(chuàng)建。
2.設(shè)計(jì)頁面UpdateData.aspx
在應(yīng)用程序Example_1_1中添加一個(gè)新的Web頁面,命名為UpdateData.aspx。然后在頁面中添加兩個(gè)TextBox控件和一個(gè)Button按鈕控件,它們的名稱分別為MyID、MyName和UpdataDataBtn。
控件MyID和控件MyName分別用來輸入字段主鍵ID和字段名稱;控件UpdataDataBtn實(shí)現(xiàn)修改數(shù)據(jù)庫中數(shù)據(jù)的功能。頁面UpdateData.aspx的設(shè)計(jì)界面如圖1-10所示。
?
圖1-9 頁面ShowData.asp0x的初始界面
?
圖1-10 頁面UpdateData.aspx的設(shè)計(jì)界面
頁面UpdateData.aspx的HTML設(shè)計(jì)代碼如下:
《%@ Page language=“c#” Codebehind=“UpdateData.aspx.cs”
AutoEventWireup=“false” Inherits=“Example_1_1.UpdateData” %>
《HTML>《HEAD>《title>Example_1_1:修改數(shù)據(jù)庫中的數(shù)據(jù)《/title>《/HEAD>
《asp:TextBox id=“MyID” runat=“server”>《/asp:TextBox>
《asp:TextBox id=“MyName” runat=“server”>《/asp:TextBox>
《asp:Button id=“UpdateDataBtn” runat=“server”
Text=“修改數(shù)據(jù)”>《/asp:Button>
《/HTML>
3.設(shè)計(jì)訪問數(shù)據(jù)庫的連接字符串
把頁面UpdateData.aspx訪問數(shù)據(jù)庫的連接字符串存放在應(yīng)用程序的配置文件web.config中。程序代碼如下:
《appSettings>
《add key=“ACCESSCONNECTIONSTRING”
value=“Provider=Microsoft.Jet.OLEDB.4.0; Data Source=”>
《/add>
《/appSettings>
由于頁面ShowData.aspx獲取連接字符串時(shí)需要使用類ConfigurationSettings。它被包含在名字空間System.Configuration中,因此需要引入該名字空間。頁面獲取連接字符串的程序代碼如下:
using System.Configuration; //引入名字空間
//獲取連接字符串
private readonly string ACCESSCONNECTIONSTRING
=ConfigurationSettings.AppSettings[
“ACCESSCONNECTIONSTRING”].ToString();
4.設(shè)計(jì)頁面UpdateData.aspx的事件和函數(shù)
頁面UpdateData.aspx調(diào)用函數(shù)Page_Load(Object sender,System.EventArgs e)初始化,該函數(shù)調(diào)用函數(shù)ShowDBData()顯示數(shù)據(jù)庫MyFirstAccessDB的表MyDataTable中的數(shù)據(jù),顯示的格式為表中的字段排列順序,同時(shí)還顯示連接信息。函數(shù)Page_Load(object sender, System.EventArgs e)和函數(shù)ShowDBData()的程序代碼如下:
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
ShowDBData(); //顯示數(shù)據(jù)庫MyFirstAccessDB中的數(shù)據(jù)
}
}
private void ShowDBData()
{ //設(shè)在訪問數(shù)據(jù)庫的連接字符串
string accessString = ACCESSCONNECTIONSTRING
+ Server.MapPath(“MyFirstAccessDB.mdb”);
string cmdText = “SELECT * FROM MyDataTable”; //創(chuàng)建獲取數(shù)據(jù)的SQL語句
//創(chuàng)建數(shù)據(jù)庫的連接和Command
OleDbConnection accessConn = new OleDbConnection(accessString);
OleDbCommand accessComm = new OleDbCommand(cmdText,accessConn);
//定義數(shù)據(jù)顯示的格式
string dataString = “《br>MyID MyName MyType My Length《br>”;
try
{
accessConn.Open(); //打開OLEDB數(shù)據(jù)庫的連接
Response.Write(“連接MyFirstAccessDB數(shù)據(jù)源成功?。?!”);
//顯示數(shù)據(jù)庫中的信息
OleDbDataReader reca = accessComm.ExecuteReader();
while(reca.Read())
{ //獲取相應(yīng)數(shù)據(jù)
dataString += reca[“MyID”].ToString() +“ ”
+ reca[“MyName”].ToString()
+“ ” + reca[“MyType”].ToString() +“ ”
+ reca[“MyLength”].ToString();
dataString += “《br>”;
}
reca.Close();
Response.Write(dataString); //顯示數(shù)據(jù)庫中的內(nèi)容
accessConn.Close(); //關(guān)閉OLEDB數(shù)據(jù)庫的連接
}
catch(Exception ex)
{
Response.Write(ex.Message); //拋出數(shù)據(jù)庫連接異常
}
}
單擊頁面UpdateData.aspx中【修改數(shù)據(jù)】按鈕控件,觸發(fā)事件UpdateDataBtn_Click(object sender, System.EventArgs e)。該事件實(shí)現(xiàn)修改數(shù)據(jù)庫MyFirstAccessDB中數(shù)據(jù)的功能,它調(diào)用函數(shù)UpdataDBData(String myID,String myName)。首先從頁面獲取MyID和MyName的值,然后再使用SQL更新語句更新表中相應(yīng)的記錄,最后調(diào)用函數(shù)ShowDBData()顯示表的數(shù)據(jù)。事件UpdateDataBtn_Click(object sender, System.EventArgs e)和函數(shù)UpdataDBData(String myID,String myName)的程序代碼如下:
private void UpdateDataBtn_Click(object sender, System.EventArgs e)
{
if(MyID.Text.Trim().Length > 0 && MyName.Text.Trim().Length > 0)
{
UpdataDBData(MyID.Text.Trim(),MyName.Text.Trim()); //修改表中的記錄
ShowDBData(); //顯示修改后的數(shù)據(jù)
}
}
private void UpdataDBData(String myID,String myName)
{ //設(shè)置訪問數(shù)據(jù)庫的連接
string accessString = ACCESSCONNECTIONSTRING
+ Server.MapPath(“MyFirstAccessDB.mdb”);
//設(shè)置更新數(shù)據(jù)庫的SQL語句
string cmdText = “UPDATE MyDataTable SET MyName=‘” + myName
+ “’ WHERE MyID=” + myID;
//創(chuàng)建訪問數(shù)據(jù)庫的連接和Command
OleDbConnection accessConn = new OleDbConnection(accessString);
OleDbCommand accessComm = new OleDbCommand(cmdText,accessConn);
try
{
accessConn.Open(); //打開OLEDB數(shù)據(jù)庫的連接
accessComm.ExecuteNonQuery(); //執(zhí)行更新數(shù)據(jù)操作
accessConn.Close(); //關(guān)閉OLEDB數(shù)據(jù)庫的連接
}
catch(Exception ex)
{
Response.Write(ex.Message); //拋出數(shù)據(jù)庫連接異常
}
}
經(jīng)過前面的步驟,一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)數(shù)據(jù)庫程序就完成了。下面運(yùn)行一下。
(1)設(shè)置頁面UpdateData.aspx為應(yīng)用程序的起始頁面。按F5鍵運(yùn)行,出現(xiàn)如圖1-11所示的初始界面。
?
圖1-11 頁面UpdateData.aspx的初始界面
(2)在MyID和MyName文本框中分別輸入“1”和“Name100”,然后單擊【修改數(shù)據(jù)】按鈕,頁面UpdateData.aspx如圖1-12所示。
?
圖1-12 頁面UpdateData.aspx顯示修改表后的數(shù)據(jù)
1.4.6 發(fā)布數(shù)據(jù)庫系統(tǒng)
在本節(jié)中,介紹如何發(fā)布1.4.1、1.4.2、1.4.3、1.4.4和1.4.5節(jié)創(chuàng)建的ASP.NET應(yīng)用程序和數(shù)據(jù)庫MyFirstAccessDB。
(1)復(fù)制應(yīng)用程序Example_1_1的所有文件,包括數(shù)據(jù)庫MyFirstAccessDB文件。
(2)單擊【控制面板】|【管理工具】中的【Internet信息服務(wù)】圖標(biāo),右擊【默認(rèn)網(wǎng)站】項(xiàng),選擇【新建】|【虛擬目錄】命令,彈出【虛擬目錄創(chuàng)建向?qū)А繉?duì)話框。單擊【下一步】按鈕,彈出【虛擬目錄別名】子對(duì)話框,并在該文本框中輸入“Example_1_1”,如圖1-13所示。
(3)單擊【下一步】按鈕,出現(xiàn)【網(wǎng)站內(nèi)容目錄】子對(duì)話框,單擊【瀏覽】按鈕選擇應(yīng)用程序Example_1_1存儲(chǔ)的位置,如圖1-14所示。
(4)依次單擊【下一步】按鈕和【完成】按鈕,便完成了創(chuàng)建虛擬目錄Example_1_1。打開一個(gè)新IE瀏覽器應(yīng)用程序,在地址欄中輸入“http://localhost/Example_1_1/ShowData.aspx”便可以顯示頁面ShowData.aspx,如圖1-9所示。
?
圖1-13 【虛擬目錄別名】子對(duì)話框 圖1-14 設(shè)置虛擬目錄的文件地址
評(píng)論
查看更多