8 2 2 ADO NET l ADO NETConnection

  • Slides: 58
Download presentation

8 -2 -2 ADO. NET的基礎-物件模型 l ADO. NET的主要類別物件有:Connection、 Command、Data. Reader、Data. Adapter、Data. Set 和Data. Table,其物件模型如下圖所示:

8 -2 -2 ADO. NET的基礎-物件模型 l ADO. NET的主要類別物件有:Connection、 Command、Data. Reader、Data. Adapter、Data. Set 和Data. Table,其物件模型如下圖所示: Data. Adapter 11

8 -2 -2 ADO. NET的基礎-物件說明 12 2016/02/22

8 -2 -2 ADO. NET的基礎-物件說明 12 2016/02/22

8 -3 ADO. NET的Data. Reader物件 l 8 -3 -1 開啟Data. Reader物件 l 8 -3

8 -3 ADO. NET的Data. Reader物件 l 8 -3 -1 開啟Data. Reader物件 l 8 -3 -2 Command物件的Execute()方法 22

8 -3 -1 開啟Data. Reader物件步驟一:建立Connection物件 l 在ASP. NET網頁建立Connection物件,如下所示: Dim str. Db. Con as string

8 -3 -1 開啟Data. Reader物件步驟一:建立Connection物件 l 在ASP. NET網頁建立Connection物件,如下所示: Dim str. Db. Con as string str. Db. Con = "Data Source=(Local. DB)v 11. 0; " & "Attach. Db. Filename=" & Server. Map. Path("App_DataSchool. mdf") & "; Integrated Security=True" Dim obj. Con As Sql. Connection obj. Con = New Sql. Connection(str. Db. Con) l str. Db. Con變數值是SQL Server 2012 Express Local. DB的連接字串。 25

8 -3 -1 開啟Data. Reader物件步驟五:讀取記錄資料 l Data. Reader物件是一種資料串流,在ASP. NET網 頁可以使用obj. DR. Has. Rows屬性判斷是否有記錄 資料,如果有就為True,然後可以使用Do

8 -3 -1 開啟Data. Reader物件步驟五:讀取記錄資料 l Data. Reader物件是一種資料串流,在ASP. NET網 頁可以使用obj. DR. Has. Rows屬性判斷是否有記錄 資料,如果有就為True,然後可以使用Do While 迴圈讀取資料表的記錄資料,如下所示: l If obj. DR. Has. Rows Then Do While obj. DR. Read() lbl. Output. Text &= obj. DR("sid") & " - " lbl. Output. Text &= obj. DR("name") & " - " lbl. Output. Text &= obj. DR("tel") & "<br/>" Loop Else lbl. Output. Text = "沒有資料" End If 29

8 -4 ADO. NET的Data. Set物件 l 8 -4 -1 Data. Set物件的基礎 l 8 -4

8 -4 ADO. NET的Data. Set物件 l 8 -4 -1 Data. Set物件的基礎 l 8 -4 -2 將記錄填入Data. Set物件 35

8 -4 -2 將記錄填入Data. Set物件步驟一:建立與開啟Connection物件 l 首先使用Connection物件建立資料連接物 件obj. Con後,使用Open()方法開啟資料來 源,如下所示: l Dim obj. Con

8 -4 -2 將記錄填入Data. Set物件步驟一:建立與開啟Connection物件 l 首先使用Connection物件建立資料連接物 件obj. Con後,使用Open()方法開啟資料來 源,如下所示: l Dim obj. Con As Sql. Connection obj. Con = New Sql. Connection(str. Db. Con) obj. Con. Open() 38

8 -4 -2 將記錄填入Data. Set物件步驟二:建立Data. Adapter物件 l Data. Set物件是使用Data. Adapter物件來取 得記錄資料,此物件是Data. Set與 Connection物件資料來源間的橋樑,可以 呼叫方法將記錄資料填入Data.

8 -4 -2 將記錄填入Data. Set物件步驟二:建立Data. Adapter物件 l Data. Set物件是使用Data. Adapter物件來取 得記錄資料,此物件是Data. Set與 Connection物件資料來源間的橋樑,可以 呼叫方法將記錄資料填入Data. Set物件,如 下所示: l Dim obj. Data. Adapter As Sql. Data. Adapter str. SQL = "SELECT * FROM Students" obj. Data. Adapter = New Sql. Data. Adapter(str. SQL, obj. Con) 39

8 -4 -2 將記錄填入Data. Set物件步驟三:建立Data. Set物件填入記錄資料 l 接著建立Data. Set物件,將取得的記錄資 料填入Data. Set物件,如下所示: Dim obj. Data.

8 -4 -2 將記錄填入Data. Set物件步驟三:建立Data. Set物件填入記錄資料 l 接著建立Data. Set物件,將取得的記錄資 料填入Data. Set物件,如下所示: Dim obj. Data. Set As Data. Set = New Data. Set() obj. Data. Adapter. Fill(obj. Data. Set, "Students") 40

8 -4 -2 將記錄填入Data. Set物件步驟四:顯示Data. Table物件的所有記錄 l 使用別名取得指定的Data. Table物件後,以For Each迴圈取出Data. Table物件Rows屬性的每一個 Data. Row物件,也就是每一筆記錄,如下所示: Dim

8 -4 -2 將記錄填入Data. Set物件步驟四:顯示Data. Table物件的所有記錄 l 使用別名取得指定的Data. Table物件後,以For Each迴圈取出Data. Table物件Rows屬性的每一個 Data. Row物件,也就是每一筆記錄,如下所示: Dim obj. Row As Data. Row For Each obj. Row In obj. Data. Set. Tables("Students"). Rows lbl. Output. Text &= obj. Row("sid") & " - " lbl. Output. Text &= obj. Row("name") & " - " lbl. Output. Text &= obj. Row("tel") & " - " lbl. Output. Text &= obj. Row("birthday") & "<br/>" Next 41

8 -5 建立List. Box控制項的簡單資料繫結-建 立 l 建立Array. List物件作為資料來源,如下所示: Dim names As Array. List =

8 -5 建立List. Box控制項的簡單資料繫結-建 立 l 建立Array. List物件作為資料來源,如下所示: Dim names As Array. List = New Array. List() names. Add("陳會安") names. Add("江小魚") names. Add("張無忌") names. Add("陳允傑") l 接著指定List. Box控制項的Data. Source屬性,如下 所示: lst. Names. Data. Source = names lst. Names. Data. Bind() 44

8 -6 -1 建立Sql. Data. Source控制項步驟三 步驟三:新增事件處理程序來顯示使用者的選擇 l 在新增List. Box控制項後,就可以建立Button 1控制項 的事件處理程序,如下所示: Protected Sub

8 -6 -1 建立Sql. Data. Source控制項步驟三 步驟三:新增事件處理程序來顯示使用者的選擇 l 在新增List. Box控制項後,就可以建立Button 1控制項 的事件處理程序,如下所示: Protected Sub Button 1_Click(sender As Object, _ e As Event. Args) Handles Button 1. Click If lst. Names. Selected. Index > -1 Then lbl. Output. Text = "選擇的學號: " & lst. Names. Selected. Item. Value End If End Sub 51

8 -6 -2 資料來源控制項的標籤內容Sql. Data. Source控制項標籤(內容) l Sql. Data. Source控制項標籤,如下所示: <asp: Sql. Data. Source

8 -6 -2 資料來源控制項的標籤內容Sql. Data. Source控制項標籤(內容) l Sql. Data. Source控制項標籤,如下所示: <asp: Sql. Data. Source ID="Sql. Data. Source 1" runat="server" Connection. String="<%$ Connection. Strings: Connection. String %>" Select. Command="SELECT * FROM [Students]"> </asp: Sql. Data. Source> 53

8 -6 -2 資料來源控制項的標籤內容web. config組態檔 l 在web. config組態檔的<connection. Strings>標籤 定義連接字串的參數名稱和值,如下所示: <connection. Strings> <add name="Connection.

8 -6 -2 資料來源控制項的標籤內容web. config組態檔 l 在web. config組態檔的<connection. Strings>標籤 定義連接字串的參數名稱和值,如下所示: <connection. Strings> <add name="Connection. String" connection. String="Data Source=(Local. DB)v 11. 0; Attach. Db. Filename=|Data. Directory|School. mdf; Integrated Security=True" provider. Name="System. Data. Sql. Client" /> </connection. Strings> 55