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

正文內(nèi)容

aspnet創(chuàng)建一個(gè)數(shù)據(jù)層(編輯修改稿)

2024-09-26 16:32 本頁面
 

【文章內(nèi)容簡介】 Set 設(shè)計(jì)器,在 ProductsTableAdapter 上按右鼠標(biāo),然后選擇 “ 添加查 詢 (Add Query)” 。 圖 14: 在 TableAdapter 上按右鼠標(biāo),選擇 “ 添加查詢 ” 向?qū)紫葧栁覀兪欠褚ㄟ^一個(gè) adhoc SQL 語句還是生成一個(gè)新存儲過程或者使用現(xiàn)有存儲過程來訪問 數(shù)據(jù)庫。讓我們還是選擇使用 SQL 語句。接著,向?qū)栁覀兪褂檬裁搭愋偷?SQL 查詢。因?yàn)槲覀兿敕祷貙?于 指定分類的所有產(chǎn)品,我們需要寫一個(gè)返回?cái)?shù)據(jù)行的 SELECT 語句。 圖 15: 選擇生成一個(gè)返回?cái)?shù)據(jù)行的 SELECT 語句 下一步是定義用于訪問數(shù)據(jù)的 SQL 查詢語句。因?yàn)槲覀冎幌敕祷貙儆谥付ǚ诸惖哪切┊a(chǎn)品,我重 用 GetProducts()里的 SELECT語句,但添加了一個(gè) WHERE 子 句:WHERE CategoryID = @CategoryID。其中的 @CategoryID 參數(shù) 向 TableAdapter配置向?qū)П硎疚覀冋谏傻姆椒▽⑿枰粋€(gè)對應(yīng)類 (即,可為 nullnullable的整數(shù) )的輸入 參數(shù)。 圖 16: 輸入一個(gè)只返回指定分類的產(chǎn)品的查詢 在最后一步,我們可以選擇使用何種數(shù)據(jù)訪問模式,還可以定制生成的方法的名字。對應(yīng)于 Fill 模式,讓我們把名字改成 FillByCategoryID,對返回 DataTable模式的方法 (GetX方法 ),讓我們來用 GetProductsByCategoryID 這個(gè)名字。 圖 17: 為 TableAdapter 的方法選擇名字 在結(jié)束向?qū)Ш螅?DataSet 設(shè)計(jì)器包含了這些新的 TableAdapter 的方法。 圖 18: 通過分類來查詢產(chǎn)品 花點(diǎn)時(shí)間用同樣的手法添加一個(gè) GetProductByProductID(productID) 方法。 這些參數(shù)化的查詢可以在 DataSet 設(shè)計(jì)器里直接測試。在 TableAdapter 中的方法上按右鼠標(biāo),然后選擇 “ 預(yù) 覽數(shù)據(jù) (Preview Data)” 。接著,輸入對應(yīng)參數(shù)的值,然后按 “ 預(yù)覽 (Preview)” 。 圖 19: 屬于飲料 (Beverages)類的那些產(chǎn)品列單 通過我們的 DAL 中的 GetProductsByCategoryID(categoryID)方法,我們就能設(shè)計(jì)一 個(gè) 網(wǎng)頁來顯示屬于指定分類的那些產(chǎn)品。下面這個(gè)例子顯示了屬于 Beverages(飲 料 )類 (CategoryID=1)的所有產(chǎn)品。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 %@ Page Language=C AutoEventWireup=true CodeFile= Inherits=Beverages % !DOCTYPE html PUBLIC //W3C//DTD XHTML Transitional//EN html xmlns= head runat=server titleUntitled Page/title link href= rel=stylesheet type=text/css / /head body form id=form1 runat=server div h1Beverages/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 18 19 20 21 22 23 using System。 using 。 using 。 using 。 using 。 using 。 using 。 using 。 using 。 using 。 using NorthwindTableAdapters。 public partial class Beverages : { protected void Page_Load(object sender, EventArgs e) { ProductsTableAdapter productsAdapter = new ProductsTableAdapter()。 = (1)。 ()。 } } 圖 20: 屬于 Beverages(飲料 )類的所有產(chǎn)品顯示 第四步:插入,更新和刪除數(shù)據(jù) 常用的插入,更新和刪除數(shù)據(jù)的模式有兩種。第一種模式,我稱之為 DB 直接模式,涉及的方法被調(diào)用時(shí),會向數(shù)據(jù)庫里發(fā)出一個(gè) INSERT, 或 UPDATE,或 DELETE命令,這個(gè)命令只對單個(gè)數(shù)據(jù)庫記錄做操作。象這樣的方法一般接受一系列對應(yīng)于插入,更新或刪除的值的標(biāo)量參數(shù) (譬如整數(shù),字符串,布爾值,日期時(shí)間等 )。譬如,用這個(gè)模式來操作 Products 表的話,刪除方法會接受一個(gè)整數(shù)參數(shù),代表所需要刪除的記錄的 ProductID,而插入方法則會接受一個(gè)對應(yīng)于ProductName 的字符串,對應(yīng) 于 UnitPrice 的 decimal 值,對應(yīng)于 UnitsOnStock的整數(shù)等等。 圖 21: 每個(gè)插入,更新,和刪除請求都被立刻發(fā)送到數(shù)據(jù)庫 另外一個(gè)模式,我稱之為批更新模式,可以在一個(gè)方法調(diào)用里更新整個(gè) DataSet,或者整個(gè) DataTable,或 者一個(gè) DataRow 集合。在這個(gè)模式里,開發(fā)人員在一個(gè) DataTable 中刪除,插入,修改 DataRow,然后把這 些 DataRow 或整個(gè)DataTable 傳給一個(gè)更新方法。然后這個(gè)方法會輪循傳入的 DataRow 們,通過DataRow的 RowState屬 性 屬性來決定這些 DataRow是否被改動過,或是新記錄,或是被刪除的記錄,然后為每個(gè)記錄發(fā)出合適的 數(shù)據(jù)庫命令。 圖 22: 在 Update 方法調(diào)用之后,所有的變動都與數(shù)據(jù)庫同步了 在默認(rèn)情形下, TableAdapter 采用批更新模式,但也支持 DB直接模式。因?yàn)槲覀冊趧?chuàng)建我們的 TableAdapter 時(shí)的高級選項(xiàng)中選擇了 “ 生成插入,更新,和刪除語句 ” 這個(gè)選項(xiàng), ProductsTableAdapter 包含了一個(gè) Update()方法,該方法實(shí)現(xiàn)了批 更新模式。具體地說, TableAdapter 包含了一個(gè) Update() 方法,可以傳入一個(gè)強(qiáng)類型 的 DataSet,或者一個(gè)強(qiáng)類型的 DataTable,或者一個(gè)和多個(gè) DataRow。假如你在一開始創(chuàng)建 TableAdapter 時(shí)的選項(xiàng)中沒有清除 “ 生成 DB直接方法 (GenerateDBDirectMethods)” 復(fù)選框的話, DB直接模 式也會通過Insert(), Update()和 Delete()方法來實(shí)現(xiàn)。 這兩種數(shù)據(jù)修改模式都使用 了 TableAdapter的 InsertCommand, UpdateCommand, 和 DeleteCommand 屬性來向數(shù)據(jù)庫發(fā)出對應(yīng) 的 INSERT, UPDATE 和 DELETE 命令。你可以在 DataSet 設(shè)計(jì)器里點(diǎn)擊 TableAdapter,然后在屬性窗口查看和改 動InsertCommand, UpdateCommand, 和 DeleteCommand 屬性。 (確 認(rèn)你選擇了TableAdapter,并且 ProductsTableAdapter 對象是屬性窗口中下拉框里被選中的項(xiàng) ) 圖 23: TableAdapter 包含 InsertCommand, UpdateCommand, 和 DeleteCommand等屬性 想查看或改動這些數(shù)據(jù)庫命令的屬性的話,點(diǎn)擊 CommandText 子屬性,這會啟動對應(yīng)的查詢 生成器。 圖 24: 在查詢生成器里配置插入,更新,刪除語句 下面的編碼例子示范了如何使用批更新模式來把 沒被終止的,且?guī)齑娴扔诨蛏儆?5個(gè)單元的產(chǎn)品的價(jià)格加 倍: C 1 2 3 4 5 6 7 8 9 10 11 12 productsAdapter = new ()。 // For each product, double its price if it is not discontinued and // there are 25 items in stock or less products = ()。 foreach ( product in products) if (! amp。amp。 = 25) *= 2。 // Update the products (products)。 下面的編碼示范如何使用 DB 直接模式刪除一個(gè)產(chǎn)品,更新一個(gè)產(chǎn)品,然后添加一個(gè)新的產(chǎn)品: C 1 2 3 4 5 6 7 8 9 10 11 productsAdapter = new ()。 // Delete the product with ProductID 3 (3)。 // Update Chai (ProductID of 1), setting the UnitsOnOrder to 12 15 (Chai, 1, 1, 10 boxes x 20 bags, , 39, 15, 10, false, 1)。 // Add a new product (New Product, 1, 1, 12 tins per carton, , 15, 0, 10, false)。 創(chuàng)建自定義的插入,更新,刪除方法 用 DB直接法生成的 Insert(), Update(),和 Delete()方法有時(shí) 候會感覺有點(diǎn)不方便,特別是當(dāng)數(shù)據(jù)表有許多字段的時(shí)候。看一下前面這個(gè)編碼例子,沒有IntelliSense 的幫 助的話,不是很清楚 Products 表的哪個(gè)字段對 應(yīng) Update()和 Insert()方法中的哪個(gè)輸入?yún)?shù)。有時(shí)候我們只要更新一到二個(gè)字 段或 者需要一個(gè)自定義的 Insert()方法,這個(gè)方法需要返回剛插入的記錄 的IDENTITY(自增 )的字段值。 要創(chuàng)建這樣的自定義方法,回到 DataSet 設(shè)計(jì)器。在 TableAdapter 上按右鼠標(biāo),選擇 “ 添加查詢 ” ,然后回 到 TableAdapter 配置向?qū)?。在第二屏上,我們可以指明要生成的查詢的類型。讓我們生成一個(gè)添加新 的 product(產(chǎn)品 )
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1