第8章 ADO.NET元件與資料繫結 8-1 資料庫的基礎 8-2 ASP.NET網頁資料庫

Slides:



Advertisements
Similar presentations
第 8 章 ADO.NET 的網頁資料庫操 作 8-1 網頁資料庫的基礎 8-1 網頁資料庫的基礎 8-2 建立資料庫與新增 ODBC 8-2 建立資料庫與新增 ODBC 8-3 ADO.NET 的基礎 8-3 ADO.NET 的基礎 8-4 SQL 指令的資料庫操作 8-4 SQL 指令的資料庫操作.
Advertisements

第7章利用ADO.NET 进行数据访问.
08 CSS 基本語法 8-1 CSS 的演進 8-2 CSS 樣式規則與選擇器 8-3 連結HTML 文件與CSS 樣式表
第8章 设计数据库应用网站 本章讲述的主要内容 8.1 数据库基础知识 8.2 使用数据库系统 8.3 SQL查询基础
第12章 建立網站的巡覽架構.
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
Visual C# 2010 程式設計經典 第15章 ADO .NET與資料工具.
LINQ 建國科技大學 資管系 饒瑞佶.
第16章 Windows Form與資料繫結 16-1 資料繫結的基礎 16-2 在專案新增資料來源 16-3 使用資料來源建立單筆編輯表單
PHP與SQL語法存取MySQL SQL
JAVA vs. SQL Server 建國科技大學 資管系 饒瑞佶 2013/4 V1.
連結資料庫 ACCESS MSSQL.
ADO.NET教學 資管所研一 曹明玉 93/4/28.
Chapter 12 T-SQL 語法與 ASP.NET.
DataSet.
第八章 利用SELECT查詢資料.
資料庫管理 操作DBMS 指導教授:楊維邦  助教:廖皓翔.
客戶端的檔案上傳 HtmlInputFile檔案控制項 上傳單一檔案 同時上傳多個檔案.
ADO.NET.
資料庫操作.
課程名稱:資料庫系統 授課老師:李春雄 博士
第15章 ADO.NET的資料庫存取 15-1 ADO.NET的基礎 15-2 建立SQL Server資料庫連接
第2章 ADO.NET 2.0概述.
Controls.
第9章 ADO.NET的網頁資料庫查詢 9-1 從資料表取得單一欄位值 9-2 DataReader物件以表格顯示資料表
SQL Stored Procedure SQL 預存程序.
R教學 安裝RStudio 羅琪老師.
5.1.1 使用 ExecuteReader()操作数据库
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
1 创建SqlDataSouce控件 数据源控件(SqlDataSource)
操作数据库 C#程序设计课程组.
使用ADO.NET访问数据 数据库连接 C#程序设计课程组.
網頁切換移轉 JS vs. ASP.NET.
連結資料庫管理系統.
App Inventor2呼叫PHP存取MySQL
資料庫程式設計 VB資料庫設計簡介 週次:6 建國科技大學 資管系 饒瑞佶.
Java 程式設計 講師:FrankLin.
網頁切換移轉 JS vs. ASP.NET.
C# 程序设计教程 同济大学计算机系基础学科组
第 8 章 VB.NET与数据库应用程序 本章主要内容: ADO.NET体系结构; VB.NET与SQL Server数据库的连接;
VS.NET 2003 IDE.
TB-054A  周天穎 編著 儒林圖書公司 發行.
Ch20. 計算器 (Mac 版本).
第五讲 酒店客房管理系统(一) 教育部“十二五”职业教育国家规划教材
Pocket Access.
VB2005 DataBase Manipulation Command for Access
第 19 章 XML記憶體執行模式.
第十讲 学生成绩管理系统(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
通讯录管理系统设计 常州工程职业技术学院 计算机技术系.
第 10 章 ADO.NET與XML.
Google協作平台+檔案分享(FileZilla+網路芳鄰)
期末考.
挑戰C++程式語言 ──第8章 進一步談字元與字串
Controls.
GridView.
GridView操作 (II).
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
ASP.NET实用教程 清华大学出版社 第9章数据库应用 教学目标 教学重点 教学过程 2019年5月3日.
MicroSim pspice.
程式移植.
Access 2003 練習與作業
Brief Guide of FrontPage
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
Cloud Training Material- 事件 Sherman Wang
連結資料庫 MYSQL.
再戰DataSet.
SQLite資料庫 靜宜大學資管系 楊子青.
Chapter 4 Multi-Threads (多執行緒).
Develop and Build Drives by Visual C++ IDE
Presentation transcript:

第8章 ADO.NET元件與資料繫結 8-1 資料庫的基礎 8-2 ASP.NET網頁資料庫 8-3 ADO.NET的DataReader物件 8-4 ADO.NET的DataSet物件 8-5 資料繫結的基礎 8-6 SqlDataSource資料來源控制項

8-1 資料庫的基礎 8-1-1 資料庫系統 8-1-2 關聯式資料庫

8-1-1 資料庫系統 我們所泛稱的資料庫只是資料庫系統(Database System)的一部分,資料庫系統是由資料庫(Database)和資料庫管理系統(Database Management System,DBMS)所組成,如右圖所示:

8-1-2 關聯式資料庫-說明 關聯式資料庫(Relational Database)是由一個或多個資料表所組成,在多個資料表間使用欄位的資料值來建立連接,以便實作資料表間的關聯性。 在關聯式資料庫是使用二維表格的資料表來儲存記錄資料,在各資料表間使用欄位值建立關聯性,透過關聯性來存取其他資料表的資料,如右圖所示:

8-1-2 關聯式資料庫-組成 關聯式資料庫是使用資料表(Tables)的二維表格來儲存資料,每一個資料表使用欄位(Fields)分類成很多群組,每一個群組是一筆記錄(Records),例如:通訊錄資料表,如下表所示:

8-2 ASP.NET網頁資料庫 8-2-1 ASP.NET與資料庫 8-2-2 ADO.NET的基礎

8-2-1 ASP.NET與資料庫-說明 ASP.NET技術的Web應用程式就是一種資料驅動Web應用程式(Data-driven Web Applications),網頁實際內容是分開儲存成外部資料,當存取時才動態整合出最新的內容。 資料庫就是Web應用程式最常使用的外部資料來源,大部分ASP.NET建立的資料驅動Web應用程式,就是一種資料庫驅動Web應用程式(Database-driven Web Application),也稱為網頁資料庫(Web Database)。

8-2-1 ASP.NET與資料庫-圖例 網頁資料庫就是一種結合前端HTML文件或Web表單的使用介面,配合後端Web伺服器和資料庫系統的一種應用程式架構,如下圖所示:

8-2-2 ADO.NET的基礎-說明 ADO.NET是微軟的資料存取技術,其主要目的是在.NET Framework平台存取資料,ADO.NET可以提供一致的物件模型來存取和編輯資料來源的資料。 換句話說,就是提供一致的資料處理方式,至於資料來源並不限資料庫,幾乎任何資料來源都可以。

8-2-2 ADO.NET的基礎-物件模型 ADO.NET的主要類別物件有:Connection、Command、DataAdapter、DataReader和DataSet,其物件模型如下圖所示: DataAdapter

8-2-2 ADO.NET的基礎-物件說明 物件 說明 Connection 建立與資料來源之間的連接 Command 對資料來源執行指令,以資料庫來說,就是執行SQL指令敘述 DataReader 針對資料來源使用Command物件執行指令,可以取得唯讀(Read-Only)和只能向前(Forward-Only)的串流資料,每一次只能從資料來源讀取一列資料(即一筆)儲存到記憶體,所以執行效率非常高 DataSet和DataTable DataSet物件是由DataTable物件組成的集合物件,DataSet物件代表儲存在記憶體的資料庫,每一個DataTable儲存一個資料表的記錄資料,而且可以設定資料表之間的關聯性(Relationship) DataAdapter 這是DataSet和Connection資料庫連接物件之間的橋樑,可以將記錄資料填入DataSet物件

8-2-2 ADO.NET的基礎-命名空間 ADO.NET類別分屬數個命名空間,可以用來存取資料庫的資料。ASP.NET網頁需要匯入指定的命名空間,才能使用ADO.NET類別來存取資料庫。主要的命名空間說明,如下表所示:

8-2-3 ASP.NET的資料控制項-說明 在ASP.NET 1.0/1.1版存取資料庫需要使用ADO.NET元件,以程式碼連接、開啟、操作和顯示資料表的記錄資料。 從ASP.NET 2.0版開始,可以直接使用資料控制項(Data Controls)建立網頁資料庫,而不用撰寫任一行程式碼。 資料控制項依其功能可以分為: 資料來源控制項 資料邊界控制項

8-2-3 ASP.NET的資料控制項- 資料來源控制項(說明) 資料來源控制項(DataSource Controls)可以使用宣告方式來存取資料來源的資料。例如:宣告資料來源是SQL Server資料庫和指定相關屬性後,就可以存取資料庫的記錄資料。 在資料來源控制項的背後就是ADO.NET元件的DataSet、DataReader、Connection、DataAdapter和Command物件,ASP.NET只是改為宣告的控制項標籤,所以不用撰寫任何一行程式碼,只需指定相關屬性值,就可以輕鬆存取資料來源的資料。

8-2-3 ASP.NET的資料控制項- 資料來源控制項(種類) 說明 SqlDataSource 存取關聯式資料庫的資料來源。可以是SQL Server,Access和Oracle等,如果使用SQL Server,控制項自動使用SqlClient類別來最佳化資料庫存取 AccessDataSource 存取微軟Access資料庫,屬於SqlDataSource控制項的特別版本 XmlDataSource 存取XML文件的資料來源,請參閱第12章 SiteMapDataSource 建立網站地圖的唯讀資料來源,請參閱第12章 ObjectDataSource 存取類別物件的資料來源,可以在多層架構存取中間層的資料來源 LinqDataSource 使用LINQ(Language-Integrated Query)從資料物件存取和修改資料,請參閱第15章 EntityDataSource 存取實體資料模型(EDM)的資料來源,請參閱第15章

8-2-3 ASP.NET的資料控制項- 資料邊界控制項(說明) 資料邊界控制項(DataBound Controls)也稱為資料顯示與維護控制項,它是使用者和資料來源間的橋樑,可以將資料來源取得的資料呈現給使用者檢視或編輯。簡單的說,這是一種現成的資料顯示和維護介面,可以將資料來源的資料編排成瀏覽器顯示的網頁內容。 透過資料邊界控制項,就不用自行撰寫HTML標籤、程式碼或建立控制項來編排資料來源取得的資料,現在只需新增資料邊界控制項且指定相關屬性,就可以快速建立漂亮的資料編排效果,而且支援資料編輯功能,可以新增、更新和刪除資料來源的資料。

8-2-3 ASP.NET的資料控制項- 資料邊界控制項(種類) 表格顯示的控制項:這類控制項可以建立傳統HTML表格的顯示外觀,讓我們以一列一筆記錄的方式來顯示資料表的記錄資料,而且提供有分頁功能,例如:GridView、DataList和ListView控制項。 單筆顯示的控制項:此類控制項可以顯示單筆記錄,如同一疊卡片,在每張卡片上顯示一筆記錄,並且提供巡覽功能可以顯示指定卡片,或前一張、後一張卡片的記錄資料,例如:DetailsView和FormView控制項。 選擇功能的控制項:即清單控制項的DropDownList和ListBox控制項,它們不只支援簡單資料繫結,也支援從資料來源控制項取得項目資料。 樹狀結構的控制項:這類控制項是用來顯示階層架構的資料,特別針對XML文件的資料來源,例如:TreeView和Menu控制項。

8-2-4 將資料庫加入ASP.NET網站- 資料庫類型 對於ASP.NET網站使用的資料庫來說,SQL Server Express版可以建立兩種類型的資料庫,其說明如下所示: 伺服器資料庫(Server Database):伺服器資料庫是屬於伺服器,所以,在伺服器上執行的應用程式都可以存取此資料庫(註: 會員管理部份需要使用)。 SQL Server資料庫檔(SQL Server Database File):SQL Server資料庫檔案就是使用SQL Server Express LocalDB(預設資料庫引擎),它是建立在名為「\App_Data」子資料夾的資料庫檔案。(在本書ASP.NET網站都是使用SQL Server資料庫檔來建立網頁資料庫)。

8-2-4 將資料庫加入ASP.NET網站- SQL Server Express LocalDB SQL Server Express LocalDB是一個執行模式的SQL Server Express版,提供最少安裝檔案與設定,屬於一種檔案型資料庫(不用啟動資料庫伺服器,就可以使用資料庫),主要是針對應用程式開發提供SQL Server資料庫的支援,用來取代舊版SQL Server的使用者執行個體(User Instances)。

8-2-4 將資料庫加入ASP.NET網站- 加入資料庫 可以在Visual Studio Community開啟ASP.NET網站後,直接將資料庫加入ASP.NET網站。例如:將SQL Server資料庫School.mdf,加入ASP.NET網站的「App_Data」資料夾,如下圖所示: 選【App_Data】資料夾,執行右鍵快顯功能表的「加入/現有項目」指令,可以看到「加入現有項目」對話方塊 選加入的資料庫

8-3 ADO.NET的DataReader物件 8-3-2 Command物件的Execute()方法

8-3 ADO.NET的DataReader物件-說明 在ASP.NET程式碼可以使用ADO.NET元件的DataReader或DataSet物件取得記錄資料。因為本書在第9章才會詳細說明SQL查詢指令,所以,本章範例都是使用同一個SQL查詢指令,如下所示: SELECT * FROM Students 上述SQL指令SELECT沒有WHERE子句的任何條件,查詢結果可以取得資料表Students的所有記錄和欄位資料。

8-3-1 開啟DataReader物件-匯入命名空間 DataReader物件是使用類似檔案串流方式來讀取記錄資料,只能讀取,並不能插入、刪除和更新記錄資料。在ASP.NET程式的類別檔開頭需要匯入命名空間,SQL Server匯入的命名空間,如下所示: using System.Data; using System.Data.SqlClient; 在匯入命名空間後,就可以使用ADO.NET物件來存取資料庫的記錄資料。

8-3-1 開啟DataReader物件- 步驟一:建立Connection物件 在ASP.NET網頁建立Connection物件,首先宣告SqlConnection物件變數objCon,如下所示: strDbCon = "Data Source=(LocalDB)\\MSSQLLocalDB;" + "AttachDbFilename=" + Server.MapPath("App_Data\\School.mdf") + ";Integrated Security=True"; objCon = new SqlConnection(strDbCon); 上述程式碼使用new運算子和建構子建立名為objCon的SqlConnection物件,strDbCon變數值是SQL Server Express LocalDB的連接字串。

8-3-1 開啟DataReader物件- 步驟二:開啟資料庫連接 在建立Connection物件後,就可以使用Open()方法開啟資料庫連接,如下所示; objCon.Open(); 上述程式碼使用名為objCon的Connection物件開啟資料庫連接。

8-3-1 開啟DataReader物件- 步驟三:建立Command物件 在建立和開啟Connection物件後,就可以使用SQL指令和Connection物件作為參數來建立Command物件,如下所示: strSQL = "SELECT * FROM Students"; objCmd = new SqlCommand(strSQL, objCon); 上述程式碼使用new運算子和建構子建立Command物件,第2個參數是開啟的資料庫連接物件,表示向此資料來源執行第1個參數的SQL指令敘述。

8-3-1 開啟DataReader物件- 步驟四:執行SQL指令敘述查詢資料表 接著使用Command物件的ExecuteReader()方法執行SQL查詢指令,如下所示: objDR = objCmd.ExecuteReader(); 上述程式碼取得DataReader物件objDR,讀者可以想像它是開啟一個資料庫的檔案串流。

8-3-1 開啟DataReader物件- 步驟五:讀取記錄資料 DataReader物件是一種資料串流,在ASP.NET網頁可以使用objDR.HasRows屬性判斷是否有記錄資料,如果有就是true,然後使用while迴圈讀取資料表的記錄資料,如下所示: while (objDR.Read()) { lblOutput.Text += objDR["sid"] + " - "; lblOutput.Text += objDR["name"] + " - "; lblOutput.Text += objDR["tel"] + "<br/>"; }

8-3-1 開啟DataReader物件- 步驟六:關閉DataReader和資料庫連接 objDR.Close(); objCon.Close(); 上述程式碼使用Close()方法關閉DataReader和Connection物件。

8-3-1 開啟DataReader物件- 範例網站 ASP.NET網站:Ch8_3_1 在ASP.NET網頁取得Students資料表的DataReader物件後,以清單方式來顯示資料表的記錄資料,不過,只有顯示學號、姓名和電話欄位,如下圖所示: 2018/03/05

8-3-2 Command物件的Execute()方法- 指令種類 在ADO.NET元件的Command物件提供三種Execute()方法來執行SQL指令敘述,如下表所示:

8-3-2 Command物件的Execute()方法- ExecuteScalar()方法 lblOutput.Text = "查詢結果: " + objCmd.ExecuteScalar(); 上述程式碼執行Command物件objCmd的SQL指令,如果傳回值不只一個。例如:SQL指令如果是查詢多筆記錄,取得的是第1筆記錄的第1個欄位。

8-3-2 Command物件的Execute()方法- 範例網站 ASP.NET網站:Ch8_3_2 在ASP.NET網頁使用Command物件的ExecuteScalar()方法執行SQL指令敘述,在TextBox控制項輸入SQL指令,按【查詢單一欄位值】鈕可以取得單一欄位值,如下圖所示:

8-4 ADO.NET的DataSet物件 8-4-1 DataSet物件的基礎 8-4-2 將記錄填入DataSet物件

8-4-1 DataSet物件的基礎-說明 DataSet物件是由DataTable物件所組成,DataSet物件相當於是資料庫,DataTable物件就是資料表。 DataTable物件是以表格來儲存資料表的記錄資料,可以使用列或欄來處理,即使用DataRowCollection和DataColumnCollection集合物件。在集合物件的每一個DataRow物件是一列,也就是一筆記錄,每一個DataColumn物件是一欄。

8-4-1 DataSet物件的基礎-圖例

8-4-2 將記錄填入DataSet物件- 步驟一:建立與開啟Connection物件 首先使用Connection物件建立資料連接物件objCon後,使用Open()方法開啟資料來源,如下所示: objCon = new SqlConnection(strDbCon); objCon.Open();

8-4-2 將記錄填入DataSet物件- 步驟二:建立DataAdapter物件 DataSet物件是使用DataAdapter物件取得記錄資料,此物件是DataSet與Connection物件資料來源之間的橋樑,可以呼叫方法將記錄資料填入DataSet物件,如下所示: strSQL = "SELECT * FROM Students"; objDataAdapter = new SqlDataAdapter(strSQL, objCon);

8-4-2 將記錄填入DataSet物件- 步驟三:建立DataSet物件填入記錄資料 DataSet objDataSet = new DataSet(); objDataAdapter.Fill(objDataSet, "Students");

8-4-2 將記錄填入DataSet物件- 步驟四:顯示DataTable物件的所有記錄 使用foreach迴圈取出DataTable物件Rows屬性的每一個DataRow物件,也就是每一筆記錄,如下所示: foreach (DataRow objRow in objDataSet.Tables["Students"].Rows) { lblOutput.Text += objRow["sid"] + " - "; lblOutput.Text += objRow["name"] + " - "; lblOutput.Text += objRow["tel"] + " - "; lblOutput.Text += objRow["birthday"] + "<br/>"; }

8-4-2 將記錄填入DataSet物件- 步驟五:關閉資料庫連接 最後使用Close()方法關閉資料庫連接,此例的Connection物件為objCon,如下所示: objCon.Close();

8-4-2 將記錄填入DataSet物件- 範例網站 ASP.NET網站:Ch8_4_2 在ASP.NET網頁取得Students資料表的DataSet物件後,使用清單方式顯示資料表的記錄資料,如下圖所示: 2017/3/6

8-5 資料繫結的基礎 8-5-1 資料繫結簡介 8-5-2 建立ListBox控制項的簡單資料繫結

8-5-1 資料繫結簡介-說明 ASP.NET控制項支援資料繫結技術,能夠將不同資料來源的集合物件、陣列、DataReader或DataView(可以視為從DataSet物件建立的檢視表)等資料整合到ASP.NET控制項。 資料來源的資料會自動填入控制項,並且使用預設方式顯示資料,也可以設定控制項屬性來變更其顯示外觀。在ASP.NET使用的資料繫結技術分為兩種:簡單資料繫結和宣告式的資料繫結。

8-5-1 資料繫結簡介- 簡單資料繫結 在ASP.NET網頁使用簡單資料繫結(Simple Databinding)的控制項擁有DataSource屬性,可以使用實作IEnumerable介面的集合物件作為資料來源,然後呼叫DataBind()方法來建立資料繫結。 例如:清單控制項的ListBox、RadioButtonList、CheckBoxList和DropDownList等都支援簡單資料繫結。

8-5-1 資料繫結簡介- 宣告式的資料繫結 宣告式的資料繫結(Declarative Databinding)是一種比較複雜的資料繫結,它是使用控制項的DataSourceID屬性來建立資料繫結。 在ASP.NET網頁需要先建立「資料來源控制項」(DataSource Controls)存取資料來源的資料,然後建立「資料邊界控制項」(DataBound Controls)來顯示和維護資料來源的資料。

8-5-2 建立ListBox控制項的簡單資料繫結-說明 可以使用資料繫結技術來動態顯示清單的項目。

8-5-2 建立ListBox控制項的簡單資料繫結-建立 首先建立ArrayList物件(ArrayList集合物件的說明請參閱附錄A)作為資料來源,如下所示: ArrayList names = new ArrayList(); names.Add("陳會安"); names.Add("江小魚"); names.Add("張無忌"); names.Add("陳允傑"); 指定ListBox控制項DataSource屬性,如下所示: lstNames.DataSource = names; lstNames.DataBind();

8-5-2 建立ListBox控制項的簡單資料繫結- 範例網站 ASP.NET網站:Ch8_5_2 在ASP.NET網頁使用簡單資料繫結技術,以ArrayList物件作為資料來源,建立ListBox控制項的項目清單,如下圖所示:

8-6 SqlDataSource資料來源控制項 8-6-2 資料來源控制項的標籤內容 8-6-3 傳回沒有重複的欄位值

8-6-1 建立SqlDataSource控制項-說明 在Visual Studio Community建立SqlDataSource控制項,請開啟「工具箱」視窗且展開【資料】區段,只需選取SqlDataSource控制項,拖拉至Web Form表單的編輯區域,就可以建立SqlDataSource控制項。 SqlDataSource控制項

8-6-1 建立SqlDataSource控制項- 步驟一(新增) 在Visual Studio Community的「工具箱」視窗提供資料來源控制項,我們可以在【設計】標籤直接拖拉來新增資料來源控制項,如下圖所示:

8-6-1 建立SqlDataSource控制項- 步驟一(設定資料來源) 選School.mdf資料連接 建立SQL指令 測試SQL指令 將連接字串儲存在組態檔

8-6-1 建立SqlDataSource控制項- 步驟二:選擇控制項使用的資料來源控制項 在新增資料來源控制項和設定好資料來源後,我們就可以在ListBox控制項選擇使用的資料來源,如下圖所示: 在【選取資料來源】欄選【SqlDataSource1】,ListBox控制項顯示【name】欄位,選取欄位值是【sid】欄位

8-6-1 建立SqlDataSource控制項- 步驟三:新增事件處理程序來顯示使用者的選擇 請按二下名為【選擇】的按鈕控制項,可以建立Button1_Click()事件處理程序。 protected void Button1_Click(object sender, EventArgs e) { if (lstNames.SelectedIndex > -1) lblOutput.Text = "選擇的學號: " + lstNames.SelectedItem.Value; }

8-6-1 建立SqlDataSource控制項-範例網站 ASP.NET網站:Ch8_6_1 在ASP.NET網頁使用宣告式的資料繫結技術,建立SqlDataSource控制項來取得School.mdf資料庫的資料,以便建立ListBox控制項的項目清單,如下圖所示:

8-6-2 資料來源控制項的標籤內容- SqlDataSource控制項標籤(內容) <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [Students]"> </asp:SqlDataSource>

8-6-2 資料來源控制項的標籤內容- SqlDataSource控制項標籤(屬性說明) ProviderName屬性值是定義在web.config組態檔的參數,如下所示: <%$ ConnectionStrings:ConnectionString %> 參數名稱分成兩部分,前面ConnectionStrings指明取得在web.config檔案同名標籤定義的參數值,後面是ConnectionString參數名稱,可以取得此參數名稱的資料庫連接字串。

8-6-2 資料來源控制項的標籤內容- web.config組態檔 在Web.config組態檔的<connectionStrings>標籤定義連接字串的參數名稱和值,如下所示: <connectionStrings> <add name="ConnectionString" connectionString="(LocalDB)\MSSQLLocalDB; AttachDbFilename=|DataDirectory|\School.mdf; Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings>

8-6-3 傳回沒有重複的欄位值-說明 當我們使用資料繫結將資料庫欄位填入DropDownList控制項時,可能會遇到重複值欄位的問題,如下圖所示:

8-6-3 傳回沒有重複的欄位值-設定 選資料來源控制項,在「SqlDataSource工作」功能表選【設定資料來源】超連結,請重複按【下一步】鈕,直到到達設定SQL陳述式的步驟。 勾選【只傳回不重複的資料列】 按【ORDER BY】鈕新增排序條件

8-6-3 傳回沒有重複的欄位值-範例網站 ASP.NET網站:Ch8_6_3 在ASP.NET網頁建立SqlDataSource控制項和DropDownList控制項來顯示Students資料表(此資料表已經新增major主修欄位)學生的主修種類,因為有重複值,所以需要修改SQL指令,並且指定排序欄位是major,如下圖所示: