成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 在ASP.NET 2.0中操作數(shù)據(jù)之六十八:為DataTable添加額外的列

在ASP.NET 2.0中操作數(shù)據(jù)之六十八:為DataTable添加額外的列

熱門標簽:400電話辦理怎么樣 外呼電話機器人成本 西寧呼叫中心外呼系統(tǒng)線路商 地圖標注軟件免費下載 百應電話機器人外呼系統(tǒng) 聯(lián)通官網(wǎng)400電話辦理 臨沂智能電話機器人加盟 蘇州如何辦理400電話 網(wǎng)絡電話外呼系統(tǒng)上海

導言:

  當向類型化的數(shù)據(jù)集(Typed DataSet)添加一個TableAdapter時,相應的DataTable的構架已經(jīng)由TableAdapter的主查詢定義好了.比如,如果主查詢返回A, B,C這3個域,那么 DataTable將有對應的3個列A, B,和C.除了主查詢以外,TableAdapter還可以包含其他的查詢,可能是返回基于某些參數(shù)的數(shù)據(jù)。比如,ProductsTableAdapter的主查詢返回所有產(chǎn)品的信息,此外,ProductsTableAdapter還包含諸如GetProductsByCategoryID(categoryID) 和 GetProductByProductID(productID)的方法,它們根據(jù)指派的參數(shù)返回特定的產(chǎn)品信息.

  如果TableAdapter的方法返回的列涵蓋在主查詢里,工作起來沒有問題。但如果返回的列并沒有涵蓋在主查詢,那么我們就需要對DataTable的構架進行擴充.在第35章《使用Repeater和DataList單頁面實現(xiàn)主/從報表》里,我們向CategoriesTableAdapter添加方法以返回 CategoryID, CategoryName, Description和NumberOfProducts列。其中前3列是涵蓋在主查詢里的,而NumberOfProducts列沒有在主查詢里定義,它返回的是每個category相關產(chǎn)品的數(shù)目.我們可以向CategoriesDataTable手工添加一列,以便于統(tǒng)計從新方法返回的NumberOfProducts列的值.

  在第52章《使用FileUpload上傳文件》我們探討過,對使用ad-hoc SQL statements構建且其方法返回的列超出主查詢范圍的TableAdapters必須多加留意.因為一旦重新運行設置向?qū)У脑?,它將對TableAdapter的方法進行更新,使其返回的列與主查詢相匹配.不過如果使用存儲過程的話就不會出現(xiàn)這種情況.

  在本文我們將考察如何擴展DataTable的構架以包含額外的列。我們都知道使用ad-hoc SQL statements構架的TableAdapter不穩(wěn)定,本文我們將用存儲過程來構架.你可以參考第65章《在TableAdapters中創(chuàng)建新的存儲過程》和第66章《在TableAdapters中使用現(xiàn)有的存儲過程》來獲取設置TableAdapter使用存儲過程的更多信息.

第一步:向ProductsDataTable添加一個PriceQuartile列

  在第67章里我們創(chuàng)建了一個名為NorthwindWithSprocs的類型化的數(shù)據(jù)集.該數(shù)據(jù)集目前包含2個DataTables:ProductsDataTable以及 EmployeesDataTable。其中ProductsTableAdapter包含3個方法:

.GetProducts——主查詢,返回Products表的所有記錄
.GetProductsByCategoryID(categoryID)——根據(jù)指定的categoryID值返回所有產(chǎn)品
.GetProductByProductID(productID)——根據(jù)指定的productID值返回所有的產(chǎn)品

  主查詢及另外2個方法都返回相同的數(shù)據(jù)列,也就是Products表的所有列,并沒有返回Categories 以及Suppliers表的相關數(shù)據(jù).

  在本文,我們將向ProductsTableAdapter添加一個名為GetProductsWithPriceQuartile 的方法,它返回所有的產(chǎn)品.除了標準的數(shù)據(jù)列外,它還返回PriceQuartile列,它用四分位數(shù)來衡量產(chǎn)品價格下跌程度.如果產(chǎn)品價格上升了25%,那么其值為1,如果下降為25%,那么其值為4.在我們創(chuàng)建一個存儲過程來返回這種信息之前,我們首先需要更新ProductsDataTable,新添一列來包含GetProductsWithPriceQuartile方法返回的 PriceQuartile值.

  打開NorthwindWithSprocs數(shù)據(jù)集,在ProductsDataTable上右鍵單擊,選擇“ Add” ,再選擇“Column”.


圖1:向ProductsDataTable新添一列

  這將向DataTable新添一列,名為“Column1”,類型為System.String.我們需要將該列的名稱改為“PriceQuartile”,類型改為System.Int32,因為它的值介于1到4之間.在ProductsDataTable 選中我們新添加的列,在屬性窗口里設置其Name屬性為 “PriceQuartile”,DataType屬性為System.Int32.


圖2:設置該新列的Name 和 DataType屬性

  就像圖2所示,我們還可以設置其它的屬性.比如,是否該列的值必須為unique;如果該列為自增列,其值是否允許為NULL等等.不過我們這里使用其默認值.

第二步:創(chuàng)建GetProductsWithPriceQuartile方法

  現(xiàn)在我們已經(jīng)對ProductsDataTable進行了更新以包含PriceQuartile列,我們將要創(chuàng)建一個GetProductsWithPriceQuartile方法.在TableAdapter上單擊右鍵,再選擇“Add Query”.這將開啟TableAdapter查詢設置向?qū)?,它首先詢問我們是使用ad-hoc SQL statements還是使用現(xiàn)有的存儲過程或新建一個存儲過程.我們選擇“Create new stored procedure”,再點Next.


圖3:在TableAdapter向?qū)Ю飫?chuàng)建新的存儲過程

  接下來,如圖4所示,向?qū)г儐栁覀兲砑拥氖悄欠N類型的查詢,由于GetProductsWithPriceQuartile方法將返回Products表的所有記錄以及所有列,我們選擇“SELECT which returns rows”項,再點Next.


圖4:查詢將是一個返回多個行的SELECT Statement

接下來,我們在向?qū)Ю镦I入如下的查詢:

SELECT ProductID, ProductName, SupplierID, CategoryID,
 QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder,
 ReorderLevel, Discontinued,
 NTILE(4) OVER (ORDER BY UnitPrice DESC) as PriceQuartile
FROM Products

  上述查詢使用了SQL Server 2005新增的NTILE function函數(shù),它將結果劃分為4組,將UnitPrice值按降序分組.

  不幸的是,查詢構造器(Query Builder)不能解析關鍵字OVER,并拋出一個錯誤信息。因此,直接在向?qū)У奈谋究蚶镦I入上述代碼,而不要使用查詢構造器.

  注意:關于NTILE以及SQL Server 2005的其它函數(shù)的更多信息,你可參閱文章《Returning Ranked Results with Microsoft SQL Server 2005》(http://www.4guysfromrolla.com/webtech/010406-1.shtml)以及SQL Server 2005 Books Online的《Ranking Functions section》部分(http://msdn2.microsoft.com/en-us/library/ms189798.aspx)

  完成后,點Next, 向?qū)⒁覀優(yōu)樾麓鎯^程重命名,我們?nèi)∶麨镻roducts_SelectWithPriceQuartile再點Next.


圖5:將新存儲過程命名為Products_SelectWithPriceQuartile

  最后我們要為TableAdapter的方法命名,選中“Fill a DataTable” 和 “Return a DataTable”兩項,并重命名為 FillWithPriceQuartile 和GetProductsWithPriceQuartile.


圖6:對TableAdapter的方法命名并點Finish

  當指定了SELECT查詢,并對存儲過程和TableAdapter的方法命名后,點Finish完成向?qū)?。這時你將看到1到2條警告信息,說“The OVER SQL construct or statement is not supported.” 不必理會它.

  完成向?qū)Ш?,該TableAdapter將會包含F(xiàn)illWithPriceQuartile 和GetProductsWithPriceQuartile方法,并且數(shù)據(jù)庫將包含一個名為Products_SelectWithPriceQuartile的存儲過程?;c時間來驗證一下,檢查數(shù)據(jù)庫,如果你沒有看到我們剛添加的存儲過程,在存儲過程文件夾上右鍵單擊,選“刷新”.


圖7:驗證新方法是否添加到TableAdapter


圖8:確保數(shù)據(jù)庫包含Products_SelectWithPriceQuartile存儲過程

  注意:使用存儲過程來替換ad-hoc SQL statements的好處之一是重新運行TableAdapter設置向?qū)У脑挷⒉粫膭哟鎯^程返回的列.我們可以作一個驗證,在TableAdapter上右鍵單擊,選“Configure”項,以啟動向?qū)?,然后點Finish完成向?qū)?。接下來,我們在?shù)據(jù)庫里查看Products_SelectWithPriceQuartile存儲過程.我們注意到其返回的列并沒有發(fā)生變化.如果我們使用的是ad-hoc SQL statements的話,重新運行向?qū)共樵兎祷氐牧信c主查詢的列相匹配,因此它將把GetProductsWithPriceQuartile方法里使用的查詢里的NTILE statement刪除掉.

  當調(diào)用數(shù)據(jù)訪問層的GetProductsWithPriceQuartile方法時,TableAdapter將執(zhí)Products_SelectWithPriceQuartile存儲過程,并為返回的每條記錄向ProductsDataTable添加對應的row.存儲過程返回的數(shù)據(jù)域(data fields)將映射到ProductsDataTable的列.因為該存儲過程要返回一個PriceQuartile數(shù)據(jù)域,所以它的值將分配給ProductsDataTable的PriceQuartile列.

  對于那些不返回PriceQuartile數(shù)據(jù)域的方法而言,PriceQuartile列的值由其DefaultValue屬性指定. 如圖2所示,該默認值為DBNull。如果你想指定為其他值,僅僅改動DefaultValue屬性即可,但一定要是一個有效的值(比如,PriceQuartile列的值一定要是一個System.Int32類型的值).

  現(xiàn)在我們完成了向DataTable添加額外列的必要的步驟,接下來我們要創(chuàng)建一個ASP.NET 頁面來展示每個產(chǎn)品的 name, price,以及price quartile.不過我們要先對業(yè)務邏輯層進行更新,以包含一個方法來調(diào)用數(shù)據(jù)訪問層的GetProductsWithPriceQuartile方法.我們將在第3步更新業(yè)務邏輯層,在第4步創(chuàng)建一個ASP.NET頁面.

第三步:更新業(yè)務邏輯層

  我們在表現(xiàn)層調(diào)用新添加的GetProductsWithPriceQuartile方法以前,必須在業(yè)務邏輯層添加相應的方法,打開ProductsBLLWithSprocs class類文件,添加如下的代碼:

[System.ComponentModel.DataObjectMethodAttribute
 (System.ComponentModel.DataObjectMethodType.Select, false)]
public NorthwindWithSprocs.ProductsDataTable GetProductsWithPriceQuartile()
{
 return Adapter.GetProductsWithPriceQuartile();
}

  就像其它方法一樣,GetProductsWithPriceQuartile僅僅調(diào)用數(shù)據(jù)訪問層對應的GetProductsWithPriceQuartile方法并返回其結果.

第四步:在一個ASP.NET頁面展示Price Quartile信息

  完成對業(yè)務邏輯層的修改后,我們將創(chuàng)建一個ASP.NET頁面來顯示每個產(chǎn)品的price quartile信息.打開AdvancedDAL文件夾里的AddingColumns.aspx頁面,從工具箱拖一個 GridView控件到頁面,設置其ID為Products.在其智能標簽里將其綁定到一個名為ProductsDataSource的新的ObjectDataSource控件,設置該控件調(diào)用ProductsBLLWithSprocs class類的GetProductsWithPriceQuartile方法,在UPDATE, INSERT,和DELETE標簽里選“(None)”.


圖9:設置ObjectDataSource調(diào)用ProductsBLLWithSprocs類


圖10:調(diào)用GetProductsWithPriceQuartile方法獲取產(chǎn)品信息

  完成設置向?qū)Ш螅?Visual Studio會為GridView添加BoundField或CheckBoxField列,其中包括PriceQuartile列. 將ProductName, UnitPrice,PriceQuartile以外的列全部刪除,設置UnitPrice列為貨幣格式.并將UnitPrice 和 PriceQuartile列放在右邊,居中。 最后分別將這3列的HeaderText屬性設置為“Product”, “Price”,“Price Quartile”。同時啟用GridView控件的排序功能.

  作上述修改后, GridView 和 ObjectDataSource控件的聲明代碼看起來和下面的差不多:

asp:GridView ID="Products" runat="server" AllowSorting="True"
 AutoGenerateColumns="False" DataKeyNames="ProductID"
 DataSourceID="ProductsDataSource">
 Columns>
 asp:BoundField DataField="ProductName" HeaderText="Product"
  SortExpression="ProductName" />
 asp:BoundField DataField="UnitPrice" DataFormatString="{0:c}"
  HeaderText="Price" HtmlEncode="False"
  SortExpression="UnitPrice">
  ItemStyle HorizontalAlign="Right" />
 /asp:BoundField>
 asp:BoundField DataField="PriceQuartile" HeaderText="Price Quartile"
  SortExpression="PriceQuartile">
  ItemStyle HorizontalAlign="Center" />
 /asp:BoundField>
 /Columns>
/asp:GridView>

asp:ObjectDataSource ID="ProductsDataSource" runat="server"
 OldValuesParameterFormatString="original_{0}"
 SelectMethod="GetProductsWithPriceQuartile"
 TypeName="ProductsBLLWithSprocs">
/asp:ObjectDataSource>

  如圖11為在瀏覽器里登錄該頁面的情況,我們注意到,最開始產(chǎn)品按price的降序排列,同時每個產(chǎn)品都有相應的PriceQuartile值,當然這些數(shù)據(jù)也可以按其它標準來排序,如圖12所示。


圖11:產(chǎn)品按Prices來排序


圖12:產(chǎn)品按名稱來排序.

  注意:只需要很少的代碼,我們就可以根據(jù)每行PriceQuartile值的不同而顯示不同的顏色,比如對值為1的行顯示為淺綠色,對值為2的行顯示為淺黃色,以此類推.你可以花點時間來實現(xiàn)該功能,如果有必要的話,你可以參閱第11章《基于數(shù)據(jù)的自定義格式化》

另一種途徑——創(chuàng)建另一個TableAdapter

  正如我們在本文看到的,當向TableAdapter添加的方法返回的列超出了主查詢范圍的時候,我們可以向DataTable添加相應的列即可.對TableAdapter而言,如果當其包含的返回“額外列”的方法較少且“額外列”不是很多的時候,這種途徑才能正常工作。

  除了往DataTable添加列以外,我們還可以對DataSet添加另外的TableAdapter,其包含的方法就是那些需要返回“額外列”的方法.就本問而言,我們可以向DataSet添加另一個名為ProductsWithPriceQuartileTableAdapter的TableAdapter,它將Products_SelectWithPriceQuartile存儲過程作為它的主查詢,對要獲取price quartile信息的ASP.NET頁面來說,只需調(diào)用 ProductsWithPriceQuartileTableAdapter即可;而不需要獲取price quartile信息的頁面只需要調(diào)用ProductsTableAdapter即可.

  這種另外新添加的TableAdapters可能導致某些功(functionality)、作業(yè)(task)重復.比如,如果那些展示PriceQuartile列的頁面也要啟用insert, update,delete功能的話,那么就要對ProductsWithPriceQuartileTableAdapter的InsertCommand, UpdateCommand,DeleteCommand屬性進行適當?shù)脑O置.而我們已經(jīng)對ProductsTableAdapter的這3個屬性進行過設置了,這時就有2種方法來對數(shù)據(jù)庫里的產(chǎn)品進行添加、更新、刪除操作了——使用ProductsTableAdapter類或 ProductsWithPriceQuartileTableAdapter類.

  本文供下載的代碼里,在NorthwindWithSprocs數(shù)據(jù)集里包含了ProductsWithPriceQuartileTableAdapter class類,演示了這2種方法.

總結:

  在大多數(shù)情況下,TableAdapter的所有方法返回的數(shù)據(jù)列都是相同的,但有極少數(shù)方法會返回主查詢沒有包含的“額外列”.比如我們在第35章《使用Repeater和DataList單頁面實現(xiàn)主/從報表》里,我們向CategoriesTableAdapter添加了一個方法,該方法除了返回主查詢里的列外,還返回了一個NumberOfProducts列.而在本文,我們考察類了向 ProductsTableAdapter 添加一個方法以返回一個沒有包含在主查詢里的PriceQuartile列.對這種返回來的“額外列”,我們需要向DataTable添加一個對應的列.

  如果你打算手工向DataTable添加列,我們建議一使用存儲過程.如果用ad-hoc SQL statements的話,任何時候只要重新運行TableAdapter設置向?qū)?,用戶所做的所有定制都要被覆蓋.而用存儲過程的話就不會出現(xiàn)這種情況.

  祝編程快樂!

作者簡介

  本系列教程作者 Scott Mitchell,著有六本ASP/ASP.NET方面的書,是4GuysFromRolla.com的創(chuàng)始人,自1998年以來一直應用 微軟Web技術。大家可以點擊查看全部教程《[翻譯]Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程》,希望對大家的學習ASP.NET有所幫助。

您可能感興趣的文章:
  • ASP.NET中DataTable與DataSet之間的轉(zhuǎn)換示例
  • Asp.net中DataTable導出到Excel的方法介紹
  • asp.net 讀取Excel數(shù)據(jù)到DataTable的代碼
  • ASP.NET DataTable去掉重復行的2種方法
  • Asp.net實現(xiàn)選擇性的保留DataTable中的列
  • ASP.NET中實現(xiàn)根據(jù)匿名類、datatable、sql生成實體類
  • asp.net實現(xiàn)數(shù)據(jù)從DataTable導入到Excel文件并創(chuàng)建表的方法
  • asp.net使用DataTable構造Json字符串的方法
  • asp.net異步獲取datatable并顯示的實現(xiàn)方法
  • asp.net DataTable相關操作集錦(篩選,取前N條數(shù)據(jù),去重復行,獲取指定列數(shù)據(jù)等)

標簽:清遠 聊城 慶陽 臨夏 中衛(wèi) 海西 甘肅

巨人網(wǎng)絡通訊聲明:本文標題《在ASP.NET 2.0中操作數(shù)據(jù)之六十八:為DataTable添加額外的列》,本文關鍵詞  在,ASP.NET,2.0,中,操作,數(shù)據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在ASP.NET 2.0中操作數(shù)據(jù)之六十八:為DataTable添加額外的列》相關的同類信息!
  • 本頁收集關于在ASP.NET 2.0中操作數(shù)據(jù)之六十八:為DataTable添加額外的列的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    亚洲精品偷拍| 欧美精品videosbestsex另类| 欧美久久精品午夜青青大伊人| 在线观看国产v片| 99久久精品免费观看| 久久66热re国产毛片基地| 欧美日韩一级大片| 亚洲大胆人体大胆做受1| 欧美日韩一区二区区| 亚洲欧美精品一区二区三区| 日本午夜在线亚洲.国产| 88在线观看91蜜桃国自产| 午夜福利理论片在线观看| av网站免费在线| 亚洲精品中文综合第一页| 美女视频在线免费| 麻豆精品视频在线观看视频| 在线午夜视频| 日韩在线第三页| 天堂√8在线中文| 九九热这里有精品视频| 国产伦精品一区二区三区四区免费| 国产一二三区在线播放| 一本色道久久综合亚洲| 日韩男女性生活视频| 国产一级二级毛片| 91精品国产高清久久久久久91裸体| 欧美激情无毛| 国产91色在线|免| 久久无码人妻精品一区二区三区| av资源中文在线| 久久激情视频免费观看| 欧美午夜视频在线观看| 欧美婷婷久久五月精品三区| 欧美日本一区二区在线观看| 亚洲成人激情社区| 在线视频欧美精品| 欧美国产日韩在线视频| 午夜精品久久久| 久久免费少妇高潮久久精品99| 成人久久一区二区三区| 免费在线观看a级片| 无码精品黑人一区二区三区| 播放一区二区| 在线观看国产精品入口男同| 成年人免费网站在线观看| 不卡的av中国片| av电影不卡在线观看| 91av中文字幕| 91精品国产综合久久男男| 日本免费新一区视频| 亚洲成人电视网| 成年免费在线观看| 亚洲综合影院| 久久精品观看| 久草国产精品视频| 国产精品久久久久久久久久久久久久久久| 午夜精品久久久久久久蜜桃| 狠狠干狠狠久久| 欧美视频你懂的| 樱空桃在线播放| 在线一区二区不卡| 在线看女人毛片| www日韩av| 欧美一区二区视频观看视频| 欧美日韩一区二区三| juliaann成人作品在线看| 性生活三级视频| 久久精品视频久久| 福利片一区二区| 欧美做受高潮1| 午夜在线视频观看日韩17c| 日本在线视频一区| 午夜久久久久久久久| 中文字幕日韩精品久久| 91亚洲精品| 国产911网站| 国产精品一区二区免费| 高清不卡一区| 欧美国产视频| 在线视频国产日韩| 免费黄色成人| 久草视频观看| 欧美日韩一区自拍| 日韩精品小视频| 秋霞影院一区二区| 国产在线一二三| 亚洲精品女人| 久久久久国产一区二区| 波多野结衣xxxx| 欧美日韩中文字幕日韩欧美| 日韩精品www| 国产日韩欧美中文字幕| 在线免费观看污视频| 最近2019好看的中文字幕免费| 26uuu亚洲电影| 欧美精品与人动性物交免费看| 波多野结衣与黑人| 国产婷婷一区二区| 欧美一级片久久久久久久| 欧美成人一区二区在线观看| 亚洲免费一区二区| 一区二区三区精品在线观看| 91精品啪在线观看国产60岁| 人偷久久久久久久偷女厕| 欧美日韩激情视频一区二区三区| 婷婷视频在线| 成人看片网站| 国产精品女主播视频| 性生活黄色大片| 日本一区二区电影| 亚洲人成网www| 久久精品视频一区二区三区| 国产a∨精品一区二区三区不卡| 欧美性一区二区三区| 野外性xxxxfreexxxxx欧美| 久久99精品国产99久久6尤物| 国产亚洲精品午夜高清影院| 九九久久国产| 欧美 日韩 国产 高清| 国产精品久久久亚洲第一牛牛| 国产精品久久久久久久9999| 色婷婷av金发美女在线播放| 国产激情视频一区二区在线观看| 色综合久久99| 中文字幕乱码亚洲精品一区| 妺妺窝人体色www在线下载| 亚洲一区在线免费观看| 久久精品主播| aaa人片在线| 国产综合av在线| 中文字幕视频在线免费| 亚洲av无码乱码国产精品久久| proumb性欧美在线观看| 国产精品视频在线观看免费| 久久色视频免费观看| 日韩vs国产vs欧美| 国产在线观看免费| 极品一区美女高清| 韩国女主播成人在线| 国产成人精品免费在线| 国产尤物视频在线观看| 自拍偷拍视频亚洲| 美美女免费毛片| 中文字幕一区二区久久人妻网站| 中文字幕人妻一区二| 黄色a级在线观看| 人妻精品一区一区三区蜜桃91| 亚洲免费大片在线观看| 国产欧美日韩三级| 麻豆乱码国产一区二区三区| 午夜精品久久久久久久99热| 日本韩国在线视频| 希岛爱理一区二区三区av高清| 国产成人啪免费观看软件| 久久亚洲精品小早川怜子66| 久久综合另类图片小说| 洋洋成人永久网站入口| 国产av无码专区亚洲a∨毛片| 精品福利视频导航大全| av亚洲精华国产精华精| 日韩欧美一区中文| 伊人久久大香线蕉精品组织观看| 国产激情精品久久久第一区二区| 超碰国产精品一区二页| xxxxxxxxx欧美| 秋霞午夜理伦电影在线观看| 久草一区二区| 欧美性xxxxxxx| 国产普通话bbwbbwbbw| 1插菊花综合| 欧美一级一区| 国产精品69xx| 99国产精品久久久久99打野战| 国产伦精品一区二区三区视频小说| 日韩欧美色综合| 日韩性xxxx| gogo高清免费视频| 美女福利视频一区二区| 国产美女一区| av黄色免费网站| 比比资源-先锋影音资源站| 国产主播福利在线| 不卡av电影在线观看| 国产黄色录像片| 国内不卡的二区三区中文字幕| 国产精品自产拍在线网站| 三级精品在线观看| 国自产拍偷拍精品啪啪一区二区| 国产69视频在线观看| 国产午夜精品一区二区三区欧美| 国产精品久久久久久久久久久久久久久| 亚洲天堂一区二区三区| 欧美日韩国产一区二区三区不卡| 久久久精品国产网站| 久久精品一区二区不卡| 久久天天躁日日躁| 欧洲精品一区二区| 亚洲男人天堂av在线| 91精品久久久久久久久青青| 国产美女激情视频| 亚洲成av人片一区二区密柚| 国产同性人妖ts口直男| 偷偷要 色偷偷| 国内精品在线一区| 浪潮av一区| 色婷婷av久久久久久久| 人操人爱免费视频| 精品999日本久久久影院| www.在线欧美| 久久国产一二区| 精品日本高清在线播放| 日本激情一区二区| 亚洲欧洲无码一区二区三区| 欧美一区二区视频在线观看| 在线免费看视频| 亚洲精品456| 99综合99| 超碰97人人人人人蜜桃| 一区二区三区的久久的视频| 免费无码国产精品| 99re在线视频上| 91精品国产综合久久婷婷香蕉| 三级毛片在线| 三级a在线观看| 相泽南亚洲一区二区在线播放| 日本va中文字幕| rebdb初裸写真在线观看| 日韩欧美一区二区视频| jizz在线观看中文| www久久久久| 国产精品99无码一区二区| 欧美成年人视频网站欧美| 日韩av网址在线| 成年人羞羞的网站| 一卡二卡三卡四卡| 久久久久成人精品无码| 久久日本片精品aaaaa国产| 国产激情91久久精品导航| 成人亚洲一区| 九色精品蝌蚪| 天天夜夜人人| 欧美黄网站在线观看| 98精品国产高清在线xxxx天堂| 羞羞视频网站在线观看| 国内精品伊人久久| 国产福利视频在线观看| 青青在线精品| 2019日本中文字幕| 在线观看中文字幕亚洲| 日本伊人午夜精品| 日韩亚洲国产免费| 日韩电影大全网站| 日本久久久久久久久| 亚洲女性喷水在线观看一区| 激情婷婷综合| 91香蕉嫩草影院入口| 亚洲精品美女久久久| 丰满人妻妇伦又伦精品国产| 日本视频www| 亚洲 欧美 日韩 综合| 亚洲高清视频一区| 欧美1o一11sex性hdhd| 精品一区二区三区在线播放| 国产精品国产精品国产专区蜜臀ah| 欧美一级黄色网| 中文字幕制服丝袜一区二区三区| 中文字幕成人网| 国产大尺度视频| 在线激情免费视频| 天天做夜夜爱爱爱| 欧美另类极品videosbest视频| 黄污网站在线观看| 国产高清视频免费观看| 久久99精品国产麻豆婷婷| 亚洲色图15p| 日韩a一级欧美一级| 美女国产在线| 天天看片中文字幕| 欧美久色视频| 一区二区三区日韩欧美精品| 亚洲同志网站入口| 麻豆视频在线免费看| 麻豆亚洲av熟女国产一区二| 国产精品成人久久电影| 午夜精品久久久99热福利| 国产精品极品美女在线观看免费| 色综合天天综合给合国产| 337p粉嫩色噜噜噜大肥臀| 成人免费av资源| 欧美疯狂做受xxxx高潮| 国产三级午夜理伦三级| 色噜噜久久综合伊人一本| av黄在线观看| 亚洲精品怡红院| 国产亚洲精品成人av久久ww| 亚洲精品久久久久avwww潮水| 狠狠爱一区二区三区| 国产videos久久| 亚洲第一成人在线视频| 欧美成人艳星乳罩| 欧美色欧美亚洲另类二区精品| 无套内精的网站| 日韩av中文字幕在线免费观看| 中文字幕亚洲一区二区三区五十路| 日韩欧美一区二区三区不卡视频| 男人的天堂最新网址| 成人亚洲精品7777| aaa毛片在线观看| 国产免费一区二区三区| 蜜桃a∨噜噜一区二区三区| www.久久久久久.com| 成人精品视频一区二区| 成人午夜伦理影院| 国产v综合v| 91丨九色丨蝌蚪| 四虎国产精品永久在线| 亚洲一区二区中文字幕在线观看| 欧美日韩一区二区三区在线电影| 内射毛片内射国产夫妻| 亚洲最新av网站| 国产a视频精品免费观看| 亚洲色欲色欲www在线观看| 2020中文字幕在线| 国产精品久久久久一区二区国产| 美女被黑人爆操网站| 欧美美女视频在线观看| 黄色aaa视频|