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

正文內(nèi)容

aspnet創(chuàng)建一個數(shù)據(jù)層(完整版)

2025-10-11 16:32上一頁面

下一頁面
  

【正文】 InsertProduct。 要創(chuàng)建這樣的自定義方法,回到 DataSet 設(shè)計器。 // Update the products (products)。 這兩種數(shù)據(jù)修改模式都使用 了 TableAdapter的 InsertCommand, UpdateCommand, 和 DeleteCommand 屬性來向數(shù)據(jù)庫發(fā)出對應(yīng) 的 INSERT, UPDATE 和 DELETE 命令。譬如,用這個模式來操作 Products 表的話,刪除方法會接受一個整數(shù)參數(shù),代表所需要刪除的記錄的 ProductID,而插入方法則會接受一個對應(yīng)于ProductName 的字符串,對應(yīng) 于 UnitPrice 的 decimal 值,對應(yīng)于 UnitsOnStock的整數(shù)等等。 using 。 using 。 圖 17: 為 TableAdapter 的方法選擇名字 在結(jié)束向?qū)Ш螅?DataSet 設(shè)計器包含了這些新的 TableAdapter 的方法。讓我們還是選擇使用 SQL 語句。 } } 圖 13: 顯示在 GridView 里的產(chǎn)品列單 這個例子要求我們在 網(wǎng)頁的 Page_Load 事件處理函數(shù)里,寫三行編碼。 using 。最棒 的是,從 TableAdapter 返回的 DataTable 可以直接綁定到 數(shù)據(jù) Web 控件上去,這樣的控件包 括 GridView,DetailsView, DropDownList, CheckBoxList,以及另外幾個控件。 圖 12: Products DataTable 和 ProductsTableAdapter 被添加到強類 型DataSet 中 至此,我們生成了含有單一 DataTable 類 ()的強類型DataSet 以及一個含 有 GetProducts()方法的強類 型 DataAdapter 類()。同時, 讓我們把那個很 一般性的GetData 方法名改成 GetProducts。 圖 10: 只選 “ 生成插入,更新和刪除語句 ” 這個選項 在核實高級選項后,按 “ 下一步 (Next)” 按鈕轉(zhuǎn)到最后一屏。 圖 7: 用 SQL 語句查詢數(shù)據(jù) 至此,我們可以手工輸入 SQL 查詢。 圖 6: 在 中存放連接字符 串 接下來,我們需要定義第一個強類型的 DataTable 的 schema,同時為用來填充強類型 DataSet 的 TableAdapter 類 提供第一個方法。 DataTable 的作用是在分層間傳輸數(shù)據(jù)。 圖 4: 給你的項目添加一個新的 DataSet 在點擊 “ 添加 (Add)” 按鈕后, Visual Studio 會問我們是否將 DataSet 添加到App_Code文件夾中,選擇 “Yes” 。強類型的 DataSet本身,是由繼承 于 中 DataSet, DataTable,和 DataRow 類的子類組成的。一個強類型的對象,其 schema是編譯時嚴格定義好的,而相比之下,弱類型的對象, 其 schema 在運行時之前是未知的。這種分層框架的好處在很多文獻里都有闡述 (詳見本教程最后的 “ 附加讀物 ” 里 的資源 ),在本系列中我們將采用這種方法。這會打開添加連接的對話框,在這上面,你可以設(shè)置需要連接的服務(wù)器,認證信息,以及數(shù)據(jù)庫名字。 App_Data 文件夾還可以放置微軟的 數(shù)據(jù)庫文件,跟 SQL Server 的數(shù) 據(jù)庫文件類似,這些 Access 文件會被自動地添加到服務(wù)器資源管理器中。把一個數(shù)據(jù)庫添加到服務(wù)器資源管理器之后,你就能在 Visual Studio 環(huán)境里添加數(shù)據(jù)表,存 儲過程,視圖等等。但是,所有的教程都可以在 Visual Studio 2020 的免費版本 Visual Web Developer 中運行。這些教程旨在簡明扼要,使用了許多屏幕截圖,提供了按步就 班(stepbystep)的指導(dǎo),帶你經(jīng)歷這個開發(fā)過程。本文是研究在 。如果你愿意的話,你也可以 直接從微軟下載 這些腳本。次序如下,打開文件 (File)菜單,選擇新的網(wǎng)站 (New Web Site),系統(tǒng)會顯示一個新網(wǎng)站對 話框,選擇 網(wǎng)站模板 (Web Site template),設(shè)置定 位 (Location)列表的選項為文件系統(tǒng) ( File System),然后選這一個放置這個網(wǎng)站的文件夾,然后選擇編程語 言為 C。 使用置于 App_Data 文件夾中的數(shù)據(jù)庫 如果你沒有可連接的 SQL Server 2020 或 2020 服務(wù)器,或者你就是想避免給數(shù)據(jù)庫服務(wù)器添加數(shù)據(jù)庫,你可以使用 SQL Server 2020 Express 版的 Northwind數(shù)據(jù)庫,該數(shù)據(jù)庫位于下載源碼中的 App_Data 文件夾里 ()。假如數(shù)據(jù)庫服務(wù)器上尚未安裝 Northwind 數(shù)據(jù)庫的話,你首先必須運行本教程下載文件中的安裝腳本來把數(shù)據(jù)庫添加到數(shù)據(jù)庫服務(wù)器上去,或者你也可以從微軟網(wǎng)站上 直接下載 SQL Server 2020 的 Northwind 數(shù)據(jù)庫以及安裝腳本 。在這兩種形式里,這種做法都把數(shù)據(jù)訪問邏輯與表現(xiàn)層緊密耦合起來了。在我們的 DAL 中,我們將有下面這樣的方法: ? GetCategories(), 返回所有分類的信息 ? GetProducts(), 返回所有產(chǎn)品的信息 ? GetProductsByCategoryID(categoryID), 返回屬于指定分類的所有產(chǎn)品的信 息 ? GetProductByProductID(productID), 返回指定產(chǎn)品的信息 這些方法,被調(diào)用后,將連接到數(shù)據(jù)庫,發(fā)出合適的查詢,然后返回結(jié)果。 要返回強類型對象,開發(fā)人員可以創(chuàng)建自定義業(yè)務(wù)對象,或者使用強類型的DataSet。 圖 3: 把所有的數(shù)據(jù)訪問編碼委托給 DAL 創(chuàng)建強類型的 DataSet和 Table Adapter 我們開始創(chuàng)建我們的 DAL,先給我們的項目添加一個強類型的 DataSet。 記住,強類型的 DataTable 并不包括如何訪問對應(yīng)底層的數(shù)據(jù)表的任何信息。 將連接字符串存放在 文件里,你可以避免把連接字符串硬寫在 TableAdapter 類的編 碼中,如果將來連接字符串信息改動的話,這種做法會極大地簡化要做的編碼改動。我們可以直接用 adhoc 的 SQL語句,或 建立一個新的存儲過程,或使用現(xiàn)存的存儲過程。如果你在類庫項目或 Windows 項目里運行這個 向?qū)У脑挘?“ 采用優(yōu)化的并發(fā)控制 (optimistic concurrency)” 選項也會被選中。 你可以讓 TableAdapter 實現(xiàn)其中一個模式或者同時實現(xiàn)兩個模式。 圖 11: 把方法名字從 GetData 改成 GetProducts 按 “ 完成 ” 按鈕結(jié)束向?qū)А?這段編碼不要求我們寫一行的跟數(shù)據(jù)訪問有關(guān)的編碼。 using 。 public partial class AllProducts : { protected void 18 19 20 21 22 Page_Load(object sender, EventArgs e) { ProductsTableAdapter productsAdapter = new ProductsTableAdapter()。 讓我們來添加一個 GetProductsByCategoryID(categoryID)方法。其中的 CategoryID 參數(shù) 向 TableAdapter配置向?qū)П硎疚覀冋谏傻姆椒▽⑿枰粋€對應(yīng)類 (即,可為 nullnullable的整數(shù) )的輸入 參數(shù)。 圖 19: 屬于飲料 (Beverages)類的那些產(chǎn)品列單 通過我們的 DAL 中的 GetProductsByCategoryID(categoryID)方法,我們就能設(shè)計一 個 網(wǎng)頁來顯示屬于指定分類的那些產(chǎn)品。 using 。 } } 圖 20: 屬于 Beverages(飲料 )類的所有產(chǎn)品顯示 第四步:插入,更新和刪除數(shù)據(jù) 常用的插入,更新和刪除數(shù)據(jù)的模式有兩種。因為我們在創(chuàng)建我們的 TableAdapter 時的高級選項中選擇了 “ 生成插入,更新,和刪除語句 ” 這個選項, ProductsTableAdapter 包含了一個 Update()方法,該方法實現(xiàn)了批 更新模式。 foreach ( product in products) if (! amp。 創(chuàng)建自定義的插入,更新,刪除方法 用 DB直接法生成的 Insert(), Update(),和 Delete()方法有時 候會感覺有點不方便,特別是當(dāng)數(shù)據(jù)表有許多字段的時候。 圖 25: 創(chuàng)建一個給 Products 表添加新記錄的方法 下一個屏顯示 InsertCommand 的 CommandText 屬性。但是,我們想要讓 InsertProduct方法返回一個查詢返回的值,而不是受影響的記錄數(shù)。如果我們注意把 對 Categories 和 Suppliers的查詢添加成子查詢,而不是用 JOIN 語 句的話,我們可以避免重做這些修改數(shù)據(jù)的方法。一個強類型的 DataSet 可以包含多個相關(guān)的 DataTable。你可以在解 決方案資源管理器里在 文件上按右鼠標,選擇 “ 查看編碼 (View Code)” ,打開這個Schema 文件來查看其中內(nèi)容。使用 .NET 中的一個新的部分 (partial)類的概念,很容易將一個類的 定義分寫在幾個文件里。 return ()。 foreach ( product in products) (li + + /li)。 using 。 using NorthwindTableAdapters。 祝編程快樂 ! 。 = ()。 using 。 } This data can also be displayed in any of 39。如果你編譯你的項目,然后返回類視圖,你就會看到 GetProducts()已被列為 的一個方法。 為示范如何定制 DAL 起見,讓我們來給 SuppliersRow 添加一個 GetProducts()方法。想查看這些自動生成的編碼的話,在類視圖里,展 開 TableAdapter 類或者強類型的 DataSet 類。步驟如下,打開 DataSet 設(shè)計 器,在設(shè)計器上按右鼠標,選擇 “ 添加/TableAdapter” 。 圖 30: Products DataTable 多了 2個新字段 花點時間把 GetProductsByCategoryID(categoryID)方法中的 SELECT 子句也更新一下。 圖 28:把 ExecuteMode 屬性改成 Scalar 下面的編碼示范如何使用這個新的 InsertProduct 方法 : C 1 2 3 4 5 6 7 productsAdapter = new ()。 (詳見 技術(shù)文檔 中關(guān) 于SCOPE_IDENTITY()的內(nèi)容以及為什么你應(yīng)該在添加 SELECT 語句前,你在 INSERT 語句后面添一個分號 。有時候我們只要更新一到二個字 段或 者需要一個自定義的 Insert()方法,這個方法需要返回剛插入的記錄 的IDENTITY(自增 )的字段值。 =
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1