freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

aspnet創(chuàng)建一個數(shù)據(jù)層-文庫吧

2025-07-18 16:32 本頁面


【正文】 數(shù)據(jù)表建立一個對應(yīng)的強類型 DataTable 。讓我們開始吧,先為 Products 表建立一個 DataTable。 記住,強類型的 DataTable 并不包括如何訪問對應(yīng)底層的數(shù)據(jù)表的任何信息。要獲取用來填充 DataTable 的數(shù)據(jù) ,我們使用 TableAdapter 類,它提供了數(shù)據(jù)訪問層的功能。對于我們的 Products DataTable, 相應(yīng)的 TableAdapter 類將包 括GetProducts()和 GetProductByCategoryID(categoryID)等方法,而我 們將在表現(xiàn)層調(diào)用這些方法。 DataTable 的作用是在分層間傳輸數(shù)據(jù)。 TableAdapter 配置向?qū)紫纫氵x擇使用哪個數(shù)據(jù)庫。下拉框里列出了服務(wù)器資源管理器內(nèi)的那些數(shù)據(jù)庫。如 果你預(yù)先沒有把 Northwind 數(shù)據(jù)庫添加 到服務(wù)器資源管理器里去的話,這時你可以點擊新連接按鈕來添加。 圖 5: 在下拉框里選擇 Northwind 數(shù)據(jù)庫 選擇好數(shù)據(jù)庫后,按 “ 下一步 ” 按鈕,向?qū)?問你是否想在 文件里存放連接字符串。 將連接字符串存放在 文件里,你可以避免把連接字符串硬寫在 TableAdapter 類的編 碼中,如果將來連接字符串信息改動的話,這種做法會極大地簡化要做的編碼改動。如果你選擇在配置文件存 放連接字符串,連接字符串將被置放于 connectionStrings段落中,這個段落可以被 加密來提高安全 ,也可以通過 IIS 圖形界面管理工具中的新的 屬性頁來修改。當(dāng)然這個工具更適于管理員。 圖 6: 在 中存放連接字符 串 接下來,我們需要定義第一個強類型的 DataTable 的 schema,同時為用來填充強類型 DataSet 的 TableAdapter 類 提供第一個方法。這兩步可以通過建立一個返回對應(yīng)于 DataTable 的數(shù)據(jù)表的字段的查詢同時完成。在向?qū)У? 最后,我們將為這個查詢對應(yīng)的方法命名。完成后,這個方法可以在表現(xiàn)層調(diào)用,它會執(zhí)行設(shè)置好的查詢,進 而填充一個強類型的 DataTable。 開始定義 SQL查詢之前,我們必須首先選擇我們想要 TableAdapter 執(zhí)行查詢的方式。我們可以直接用 adhoc 的 SQL語句,或 建立一個新的存儲過程,或使用現(xiàn)存的存儲過程。在這些教程里,我們將使用 adhoc 的 SQL 語句。請參考 Brian Noyes 的文章 “ 使用 Visual Studio 2020 DataSet 設(shè)計器創(chuàng)建數(shù)據(jù)訪問層 ” 中使用存儲過程的例子。 圖 7: 用 SQL 語句查詢數(shù)據(jù) 至此,我們可以手工輸入 SQL 查詢。當(dāng)生成 TableAdapter 的第一個方法時,你一般想要讓你 的查詢返回那些需 要在對應(yīng)的 DataTable 中存放的字段。我們可以建立一個從 Products 表里返回所有字段,所有數(shù) 據(jù)行的查詢來達到我們的目的: 圖 8: 在文本框里輸入 SQL查詢 或者,我們可以使用查詢生成器 (Query Builder),用圖形界面來構(gòu)造查詢,如圖 9 所示。 圖 9: 通過查詢編輯 器生成查詢 在生成查詢之后,在移到下一屏之前,點擊 “ 高級選項 (Advanced Options)” 按鈕。在網(wǎng)站項目里,在默認 情形下, “ 生成插入,更新,刪除語句 ” 是唯一已被選中的選項。如果你在類庫項目或 Windows 項目里運行這個 向?qū)У脑挘?“ 采用優(yōu)化的并發(fā)控制 (optimistic concurrency)” 選項也會被選中。現(xiàn)在先別選“ 采用優(yōu)化的并發(fā) 控制 ” 這個選項。在以后的教程里我們會詳細討論優(yōu)化的并發(fā)控制。 圖 10: 只選 “ 生成插入,更新和刪除語句 ” 這個選項 在核實高級選項后,按 “ 下一步 (Next)” 按鈕轉(zhuǎn)到最后一屏。在這里,配置向?qū)栁覀円o TableAdapter 選擇添加什么方法。填充數(shù)據(jù)有兩種模式: ? 填充 DataTable – 這個做法會 生成一個方法,該方法接受一個 DataTable的參數(shù),基于查詢的結(jié)果 填充這個 DataTable。譬如, 的DataAdapter 類就是在它的 Fill()方法中實現(xiàn)這個模式的 。 ? 返回 DataTable – 這個做法會生成一個方法,該方法會創(chuàng)建并填充一個DataTable,然后將 其作為方法的返回值。 你可以讓 TableAdapter 實現(xiàn)其中一個模式或者同時實現(xiàn)兩個模式。你也可以重新命名這里提供的這些方法。讓 我們對兩個復(fù)選框的選項不做改動,雖然我們在這些教程里只需要使用后面這個模式。同時, 讓我們把那個很 一般性的GetData 方法名改成 GetProducts。 這最后一個復(fù)選框, “ 生成 DB 直接方法 (GenerateDBDirectMethods)” ,如果選了的話,會為 TableAdapter 自動生 成 Insert(), Update(),和 Delete()方法。如果你不選這個選項 的話,所有的更新都需要通過 TableAdapter 唯一的Update()方法來實現(xiàn),該方法接受一個強類型的 DataSet,或者一個 DataTable,或者單個 DataRow,或者一個 DataRow 數(shù)組。 (假如你 在 圖 9所示的高級屬性里把 “ 生成添加,更新和刪除語句 ” 的選項去掉的話,這個復(fù)選框是不起作用的 )。讓我們 保留這個復(fù)選框的選項。 圖 11: 把方法名字從 GetData 改成 GetProducts 按 “ 完成 ” 按鈕結(jié)束向?qū)?。在向?qū)шP(guān)閉后,我們回到 DataSet 設(shè)計器中,它會顯示我們剛創(chuàng)建的 DataTable。你可 以看到 Products DataTable 的字段列單(ProductID, ProductName 等 ),還有 ProductsTableAdapter 的 Fill()和GetProducts()方法 。 圖 12: Products DataTable 和 ProductsTableAdapter 被添加到強類 型DataSet 中 至此,我們生成了含有單一 DataTable 類 ()的強類型DataSet 以及一個含 有 GetProducts()方法的強類 型 DataAdapter 類()。通過這些對象可以用下 列編碼來獲取所有產(chǎn)品的列單: C 1 2 3 4 5 6 7 productsAdapter = new ()。 products。 products = ()。 foreach ( productRow in products) (Product: + + br /)。 這段編碼不要求我們寫一行的跟數(shù)據(jù)訪問有關(guān)的編碼。我們不需要生成任何 類的實例,我們不需要 指明任何連接字符串,任何 SQL 查詢語句,或者任何存儲過程。 TableAdapter 為我們提供了底層的數(shù)據(jù)訪問編 碼! 這個例子里的每個對象都是強類型的,允許 Visual Studio 提供 IntelliSense幫助以及編譯時類型檢查。最棒 的是,從 TableAdapter 返回的 DataTable 可以直接綁定到 數(shù)據(jù) Web 控件上去,這樣的控件包 括 GridView,DetailsView, DropDownList, CheckBoxList,以及另外幾個控件。下面這個例子示范只要 在 Page_Load 事件處理函數(shù)里添加短短的三行編碼就能將從GetProducts()方法返 回的 DataTable 綁定到一個 GridView 上去。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 %@ Page Language=C AutoEventWireup=true CodeFile= Inherits=AllProducts % !DOCTYPE html PUBLIC //W3C//DTD XHTML Transitional//EN html xmlns= head runat=server titleView All Products in a GridView/title link href= rel=stylesheet 18 19 20 21 22 23 24 25 26 type=text/css / /head body form id=form1 runat=server div h1 All Products/h1 p asp:GridView ID=GridView1 runat=server CssClass=DataWebControlStyle HeaderStyle CssClass=HeaderStyle / AlternatingRowStyle CssClass=AlternatingRowStyle / /asp:GridView /p /div /form /body /html C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 using System。 using 。 using 。 using 。 using 。 using 。 using 。 using 。 using 。 using 。 using NorthwindTableAdapters。 public partial class AllProducts : { protected void 18 19 20 21 22 Page_Load(object sender, EventArgs e) { ProductsTableAdapter productsAdapter = new ProductsTableAdapter()。 = ()。 ()。 } } 圖 13: 顯示在 GridView 里的產(chǎn)品列單 這個例子要求我們在 網(wǎng)頁的 Page_Load 事件處理函數(shù)里,寫三行編碼。在以后的教程里,我們將討 論使用 ObjectDataSource,用聲明的方式來從 DAL中獲取數(shù)據(jù)。用 ObjectDataSource 的話,我們一行編碼都不 用寫,而且還能得到分頁和排序支持呢! 第三步:給數(shù)據(jù)訪問層添加參數(shù)化的方法 至此, ProductsTableAdapter 只有一個方法, GetProducts(),它返回數(shù)據(jù)庫里的所有產(chǎn)品。能夠操作所有的產(chǎn)品當(dāng)然有用,但很多時候我們想要獲取關(guān)于一個指定產(chǎn)品的信息,或者屬于某個特 定分類的所有產(chǎn)品。要想給我們的數(shù)據(jù)訪問層添加這樣的功能,我們可以給 TableAdapter 添加參數(shù)化的方法。 讓我們來添加一個 GetProductsByCategoryID(categoryID)方法。為給 DAL 添加新的 方法,讓我們回到 Data
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1