精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

淺談如何使用.NET存儲XML數(shù)據(jù)

開發(fā)
SQL Server 2000和XML for SQL Server 2000 Web版本(SQLXML)提供了三種存儲XML數(shù)據(jù)的途徑:XML Bulk Load和Updategrams,本文將談談如何使用.NET存儲XML數(shù)據(jù)。

XML Bulk Load和Updategrams,這兩種客戶端技術使用帶有注解的大綱指定XML文檔內容和 數(shù)據(jù)庫的表之間的映射;OpenXML是一種服務器端技術,它允許你在XML文檔上定義關系視圖, 有了OpenXML的關系視圖,你就能使用T-SQL代碼查詢XML文檔中的數(shù)據(jù)并把結果存儲在你的SQL Server數(shù)據(jù)庫中。

這三種技術中的每一種都是為特定的目的設計的。XML Bulk Load把來自 很大的XML文檔的數(shù)據(jù)存儲在SQL Server中;Updategrams執(zhí)行SQL Server數(shù)據(jù)的優(yōu)化更新(優(yōu) 化更新是沒有鎖(lock)的更新,在這種更新中系統(tǒng)檢測是否有其它用戶在原來讀取數(shù)據(jù)后改 變了它);OpenXML提供了人們熟悉的XML數(shù)據(jù)關系訪問方法。

在這三種技術中,OpenXML是最靈活的,因為它提供了一個編程模型(T-SQL), 在把XML數(shù)據(jù)存儲在SQL Server數(shù)據(jù)庫之前,你可以使用這種編程模型在XML數(shù)據(jù)上編寫業(yè)務規(guī) 則或執(zhí)行計算邏輯。但是,由于OpenXML是一種基于服務器的技術,如果你頻繁的使用它或者有 大量的文檔,它會降低SQL Server的性能。不過,如果你采用了微軟.NET框架組件,你就可以 使用ADO.NET的數(shù)據(jù)集繞開這些性能和可伸縮性方面的限制,ADO.NET數(shù)據(jù)集賦予你一個強大的 技術--為把XML數(shù)據(jù)存儲在SQL Server包含了一個完整的編程模型。

數(shù)據(jù)集、數(shù)據(jù)表和XML映射

你可以使用數(shù)據(jù)集簡單地從SQL Server中生成XML查詢結果。通過提供一種可以在客戶端和 中間層計算機上使用的關系數(shù)據(jù)緩存(cache),數(shù)據(jù)集能夠載入和維護多種數(shù)據(jù)源(包括SQL Server、其它的關系型數(shù)據(jù)庫和XML)中的數(shù)據(jù)。

當你從XML文檔中載入一個數(shù)據(jù)集的時候,該數(shù)據(jù)集必須把存儲在層次XML表現(xiàn) (representation)中的數(shù)據(jù)映射成數(shù)據(jù)集的關系表現(xiàn)。例如,如果你的XML文檔包含一個 Order元素列表,而它又有一個作為子元素的嵌套的LineItem元素,那么通常這個文檔被映射成 關系表現(xiàn)中的Orders和LineItems數(shù)據(jù)表。這種映射的目的與OpenXML使用Xpath查詢構造XML文 檔上的關系視圖的方法的目的是一樣的。但是與使用Xpath規(guī)范不同,數(shù)據(jù)集有自己的映射數(shù)據(jù) 的方式。

數(shù)據(jù)集使用XML大綱定義(XSD)大綱把數(shù)據(jù)從XML文檔映射到數(shù)據(jù)集的關系數(shù)據(jù)緩存中。數(shù) 據(jù)集為你提供了指定映射XML數(shù)據(jù)的大綱的兩種方法。首先,你可以引用一個定義了XML文檔中 使用的元素,屬性和關系的XSD大綱。另一種方法是,你可以直接從文檔的結構中推理大綱。換 句話說,數(shù)據(jù)集可以通過檢查XML文檔的結構和內容建立大綱。

當你引用XSD大綱的時候,數(shù)據(jù)集使用這個大綱中定義的元素、屬性與元素之間的關系來構 造關系數(shù)據(jù)緩存中的數(shù)據(jù)表、數(shù)據(jù)列和數(shù)據(jù)關系,你可以使用這個數(shù)據(jù)緩存存儲被映射的XML數(shù) 據(jù)。我談到關系數(shù)據(jù)緩存中的結構或大綱的時候,一般把它稱為數(shù)據(jù)緩存的形式。當數(shù)據(jù)集處 理大綱的時候,它會應用一組規(guī)則,這種規(guī)則與映射大綱中沒有指定注解時Updategrams 和XML Bulk Load使用的默認映射規(guī)則相似,數(shù)據(jù)集使用這種規(guī)則建立數(shù)據(jù)集用于存儲被映射的XML數(shù) 據(jù)的表。數(shù)據(jù)集的映射規(guī)則概述如下:

◆復合元素--即包含其它元素或屬性的元素--被映射成表。

◆屬性和簡單值(simple-valued)子元素--只包含數(shù)據(jù),不包含其它元素或屬性的元素-- 被映射成列。

◆數(shù)據(jù)類型從XSD類型映射為.NET類型。 

推理(Inference)是一種快速、方便的把XML文檔載入數(shù)據(jù)集的方法。表、列和關系都是" 自我測量"(introspection)自動建立的,"自我測量"是數(shù)據(jù)集檢查XML文檔的結構和內容的過 程。盡管使用推理明顯減少了你的編程負擔,但是它也給你的實現(xiàn)帶來了不可預測性,因為對 XML文檔的很小的改動可能引起數(shù)據(jù)集建立不同形式的表。這些形式的改變可能引起你的應用程 序意外中斷。因此,我推薦你一般為應用程序引用一個大綱,建立原型的時候限制推理的使用 。

現(xiàn)在讓我們看一看如何使用大綱建立一個可用于更新SQL Server數(shù)據(jù)庫的客戶端數(shù)據(jù)集數(shù)據(jù) 緩存的例子。 

映射XML訂單

假定你在編寫一個接受用戶訂單的應用程序,訂單是XML格式的,它的XSD 大綱如圖1定義。該大綱定義了三種復合類型,分別提供訂單的客戶數(shù)據(jù)、訂單數(shù)據(jù)和線性數(shù)據(jù) 項。一個頂層Customer元素定義了XML文檔的根。這個封閉的系統(tǒng)定義了元素之間的關系: Order元素包含了一個LineItem元素,Customer元素包含一個Order元素。圖2顯示了符合圖1定 義的大綱的一個XML文檔實例。

圖1:XSD大綱

<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="urn:Sep2003Example" elementFormDefault="qualified"
xmlns="urn:Sep2003Example"
xmlns:xs=" <xs:complexType name="OrderType">
 <xs:sequence>
<xs:element name="OrderID" type="xs:integer" />
<xs:element name="LineItem" type="LineItemType" />
 </xs:sequence>
</xs:complexType>
< xs:complexType name="LineItemType">
 <xs:sequence>
<xs:element name="ProductID" type="xs:int" />
<xs:element name="Quantity" type="xs:int" / >
<xs:element name="UnitPrice" type="xs:decimal" />
 </xs:sequence>
</xs:complexType>
<xs:complexType name="CustomerType">
 <xs:sequence>
<xs:element name="CustomerID" type="xs:string" />
<xs:element name="Order" type="OrderType" />
 </xs:sequence>
</xs:complexType>
<xs:element name="Customer" type="CustomerType">
</xs:element>
</xs:schema>

圖2:一個XML文檔示例

<?xml version="1.0" ?>
 <Customer xmlns="urn:Sep2003Example">
< CustomerID>ALFKI</CustomerID>
<PO>9572658</PO>
<Address>
<Street >One Main Street</Street>
<City>Anywhere</City>
<State>NJ</State>
<Zip>08080</Zip> </Address>
<Order>
 <OrderID>10966</OrderID >
 <LineItem>
<ProductID>37</ProductID>
<UnitPrice>26.50 </UnitPrice>
<Quantity>8</Quantity>
<Description>Gravad lax </Description>
 </LineItem>
 <LineItem>
<ProductID>56 </ProductID>
<UnitPrice>38.00</UnitPrice>
<Quantity>12</Quantity>
<Description>Gnocchi di nonna Alice</Description>
 </LineItem>
</Order>
 </Customer>

列表1中顯示的C#代碼使用ReadXmlSchema方法把圖1中的大綱載入一個叫作orderDS的數(shù)據(jù)集 中。ReadXmlSchema建立了三個數(shù)據(jù)表,它們分別與大綱中定義的Customer、Order和LineItem 元素對應。因此你可以驗證這個大綱在關系數(shù)據(jù)緩存中建立了預期的表,printDSShape方法把 每個表的名稱寫到控制臺上,后面跟著列的列表和每列的數(shù)據(jù)類型。

列表1: 建立關系數(shù)據(jù)緩存的C#代碼

using System;
using System.Collections;
using System.Data;
using System.Data.SqlClient;
using System.Xml;

public class XMLMap
{
public static void Main()
{// 建立數(shù)據(jù)集和讀取大綱
DataSet orderDS = new DataSet ("CustOrder");
orderDS.ReadXmlSchema("CustOrderLitem.xsd");

// 打印數(shù)據(jù)集的形式
printDSShape(orderDS);

// 把一個XML格式的訂單讀入數(shù)據(jù)集
orderDS.ReadXml ("Order.xml",System.Data.XmlReadMode.IgnoreSchema);

// 打印數(shù)據(jù)集中的數(shù)據(jù)
printDSData(orderDS);

// 此處插入業(yè)務規(guī)則和數(shù)據(jù)庫更新邏輯
}

private static void printDSShape(DataSet ds)
{
foreach (DataTable dt in ds.Tables)
{
Console.WriteLine("{0}",dt.TableName);

// 打印列的名稱和類型
foreach (DataColumn dc in dt.Columns)
Console.WriteLine("\t{0}\t{1}",dc.ColumnName,dc.DataType.ToString());
} }

private static void printDSData(DataSet ds)
{
foreach (DataTable dt in ds.Tables)
{Console.WriteLine("\n{0}:", dt.TableName);

// 打印列的頭
foreach (DataColumn dc in dt.Columns)
Console.Write("{0} \t",dc.ColumnName);
Console.WriteLine("");

// 輸出數(shù)據(jù)
foreach (DataRow dr in dt.Rows)
{
foreach(DataColumn dc in dt.Columns)
System.Console.Write("{0}\t",dr[dc]);
System.Console.WriteLine ("");
}}}}

仔細查看一下列的名稱。盡管大綱中沒有指定Customer_Id和Order_Id列,但是它們還是出 現(xiàn)在數(shù)據(jù)表中。ReadXmlSchema給數(shù)據(jù)集自動添加這些列。數(shù)據(jù)集把這些列用作外部鍵 (foreign key),以模擬Customer元素與它的Order元素之間、Order元素與它的LineItem元素 之間的關系。因為典型情況下XML使用嵌套的關系代替了外部鍵,所以數(shù)據(jù)集自動生成自己的主 鍵、數(shù)據(jù)表之間的外部鍵,并把它們存儲在這些列中。

請同時仔細查看圖3中的數(shù)據(jù)類型--數(shù)據(jù)集已經把來自XML大綱數(shù)據(jù)類型的數(shù)據(jù)類型映射為對 應的.NET數(shù)據(jù)類型。當你把XML文檔載入數(shù)據(jù)集的時候,該數(shù)據(jù)集把來自XML的每一個值轉換為 對應的.NET類型。

圖3:生成的數(shù)據(jù)類型和記錄

Customer
CustomerID System.String
Customer_Id System.Int32

Order
OrderID System.Int64
Order_Id System.Int32
Customer_Id System.Int32

LineItem
ProductID System.Int32
Quantity System.Int32
UnitPrice System.Decimal
Order_Id System.Int32

Customer:
CustomerID Customer_Id
ALFKI 0

Order:
OrderID Order_Id Customer_Id
10966 0 0

LineItem:
ProductID Quantity UnitPrice Order_Id
37 8 26.5 0
56 12 38 0

把大綱載入數(shù)據(jù)集之后,為了完成關系映射,你需要做的所有事情就是把XML數(shù)據(jù)載入該數(shù) 據(jù)集。列表1的ReadXml方法打開叫作Order.xml的文件,該文件如圖2所示。接著,它把文件中 的數(shù)據(jù)讀取到你剛才讀取大綱建立的數(shù)據(jù)集中的數(shù)據(jù)表里。你的XML訂單現(xiàn)在可以通過數(shù)據(jù)集訪 問了。

為了演示如何訪問數(shù)據(jù)集中的數(shù)據(jù),列表1的printDSData方法在數(shù)據(jù)表中導航,對于每張表 ,都顯示列的名稱,緊接著顯示這張表的所有的行。圖3顯示為ReadXmlSchema方法給數(shù)據(jù)集添 加的Customer_Id和Order_Id列自動生成了值。

請注意,Order.xml出現(xiàn)的三個元素--PO、Address和Description--沒有映射到數(shù)據(jù)表中。 這些數(shù)據(jù)被忽略了,因為你提供給數(shù)據(jù)集的大綱沒有包含這些元素,當數(shù)據(jù)集建立關系數(shù)據(jù)緩 存的外形并載入XML數(shù)據(jù)的時候,它簡單地忽略了沒有在大綱中描述的數(shù)據(jù)。即使在你從客戶那 兒接收到的XML訂單中包含了沒有預料到的額外數(shù)據(jù),這種簡便特性也可以讓你的代碼正常地工 作。

建立使用數(shù)據(jù)緩存的應用程序

現(xiàn)在你已經知道如何使用數(shù)據(jù)集為XML數(shù)據(jù)建立關系數(shù)據(jù)緩存了,你可以應用這種技術來實 現(xiàn)一個執(zhí)行業(yè)務邏輯并更新SQL Server的應用程序。當你使用數(shù)據(jù)集編程模型的時候實現(xiàn)業(yè)務 邏輯相對直接。ADO.NET為你提供了更新SQL Server中數(shù)據(jù)的幾種選擇,包括使用數(shù)據(jù)適配器、 編寫自己的查詢,以及執(zhí)行存儲過程。數(shù)據(jù)集使把XML數(shù)據(jù)映射成關系模型很容易,剩余的事情 是你的了。

【編輯推薦】

  1. 淺談如何將Oracle導出到XML文件
  2. 詳解Java解析XML的四種方法
  3. 數(shù)據(jù)庫中的pureXML優(yōu)點介紹

責任編輯:彭凡 來源: blog.ikugo.cn
相關推薦

2009-07-28 17:34:28

ASP.NET XML

2009-06-22 11:52:00

javascriptxml

2009-07-23 15:44:39

ASP.NET MVC

2011-01-28 09:45:29

ASP.NET MVC

2009-07-20 17:12:17

ASP.NET訪問數(shù)據(jù)

2009-10-16 10:14:26

VB.NET使用Fil

2009-07-14 11:51:00

XML壓縮

2009-08-19 10:54:42

ASP.NET數(shù)據(jù)訪問

2009-07-22 17:21:27

ASP.NET 2.0

2009-07-28 14:40:15

XML數(shù)據(jù)ASP.NET

2009-11-11 11:19:57

ADO.NET使用

2009-09-22 13:41:10

直接使用Hiberna

2009-08-03 18:47:12

ASP.NET數(shù)據(jù)緩存

2009-04-14 09:24:40

OracleXML導出

2009-09-08 16:55:01

Linq實現(xiàn)XML轉換

2011-07-20 14:04:42

.NET策略模式

2009-09-14 15:45:28

LINQ刪除XML節(jié)點

2009-11-03 15:13:13

ADO .NET存儲過

2010-01-21 17:23:05

VB.NET Radi

2009-07-23 14:08:58

點贊
收藏

51CTO技術棧公眾號

99精品欧美一区二区| 丰满少妇被猛烈进入高清播放| 国产精品无码在线播放| 欧美激情偷拍| 亚洲人成网站777色婷婷| 久久99爱视频| a国产在线视频| 国产目拍亚洲精品99久久精品 | 蜜桃视频在线观看播放| 国产日韩欧美不卡在线| 超碰97在线人人| 久久久久久亚洲av无码专区| 一区二区蜜桃| 一区二区三区黄色| 国产精品扒开腿做爽爽爽a片唱戏| 成人啊v在线| 亚洲电影一区二区三区| 一区二区三区精品国产| 天天综合天天综合| 国产一区二区伦理| 国产极品jizzhd欧美| 久久久精品国产sm调教| 久久国产精品亚洲人一区二区三区| 欧美大片国产精品| 狠狠干狠狠操视频| 成人免费av电影| 午夜精品一区二区三区三上悠亚| 中文字幕一区二区三区5566| 黄色片在线免费观看| 粉嫩欧美一区二区三区高清影视| 国产精品视频色| 国产中文字幕视频| 亚洲人人精品| 欧美高清不卡在线| 中文字幕在线有码| 天天综合精品| 日韩中文第一页| 精品人妻一区二区三区蜜桃视频| 三级小说欧洲区亚洲区| 欧美成人精精品一区二区频| 在线观看日本www| 久久久久伊人| 欧美日韩卡一卡二| 美女网站色免费| 成人自拍视频网| 色婷婷狠狠综合| 国产又大又硬又粗| 午夜伦理福利在线| 福利视频一区二区| 欧美网站免费观看| 周于希免费高清在线观看| 精品人伦一区二区三区蜜桃免费| 久久国产午夜精品理论片最新版本| av片在线观看| 亚洲尤物在线视频观看| 人妻激情另类乱人伦人妻| 超碰人人在线| 一级精品视频在线观看宜春院| 91免费国产精品| 蜜桃传媒在线观看免费进入 | 亚洲午夜未满十八勿入免费观看全集| 91黄色免费视频| 久久99精品国产自在现线| 亚洲国产精品va在线看黑人动漫| 亚洲av无码一区二区三区观看 | 国产一区二区视频在线| 91久久精品一区二区别| 肥臀熟女一区二区三区| fc2成人免费人成在线观看播放| 国产精品区一区二区三含羞草| 老牛影视av牛牛影视av| 91在线丨porny丨国产| 欧美一进一出视频| 午夜在线视频播放| 一区二区三区中文字幕电影| 精品久久久久久无码中文野结衣| 少妇在线看www| 在线一区二区三区四区| 女人高潮一级片| 4438全国亚洲精品观看视频| 亚洲国产97在线精品一区| 永久免费看mv网站入口78| 成人一区不卡| 欧美日韩国产第一页| 国产一级做a爱片久久毛片a| 肉色丝袜一区二区| 91久久精品国产91久久| 天天操天天舔天天干| 欧美经典一区二区三区| 91精品国产吴梦梦| 中文字幕在线视频网站| 欧美精品在线视频| 99热超碰在线| 日韩精品久久| 国语对白做受69| 又色又爽又黄无遮挡的免费视频| 国产精品资源站在线| 欧美视频1区| 国产黄色在线观看| 日韩欧美在线第一页| 成人黄色一级大片| 三级小说欧洲区亚洲区| 美女av一区二区| 精品成人无码久久久久久| 国产成人综合在线观看| 婷婷久久青草热一区二区| 欧美极品少妇videossex| 欧美最猛黑人xxxxx猛交| 欧美丰满熟妇bbb久久久| 成人av动漫在线观看| 97久久伊人激情网| 国产三级在线观看视频| 久久精品一区四区| 日韩伦理在线免费观看| 成人影院网站ww555久久精品| 日韩高清免费在线| 久久国产露脸精品国产| 久久99久久精品| 日本视频精品一区| 在线手机中文字幕| 欧美α欧美αv大片| 欧美一级片在线视频| 日韩激情一区二区| 免费av在线一区二区| 久久久久黄久久免费漫画| 91麻豆精品国产91久久久久久久久 | 无码精品a∨在线观看中文| 成人免费看视频网站| 日韩精品一区二区三区视频播放| 国产精品一区二区亚洲| 久久中文字幕一区二区三区| 国产手机精品在线| 激情图片在线观看高清国产| 日韩无一区二区| 久久人妻无码aⅴ毛片a片app| 蜜桃一区二区三区四区| 日本一区免费看| 欧美成人ⅴideosxxxxx| 精品爽片免费看久久| www.国产高清| 成人丝袜高跟foot| 日韩美女爱爱视频| 91蝌蚪精品视频| 欧美精品激情在线观看| 亚洲成人第一区| 亚洲一区在线观看网站| 黄色av电影网站| 亚洲乱亚洲高清| 久久99九九| 日韩中文影院| 色噜噜狠狠狠综合曰曰曰| 在线中文字幕网站| 1区2区3区欧美| 日本特黄在线观看| 黄色精品一区| 韩日午夜在线资源一区二区| 韩日毛片在线观看| 亚洲人成在线播放| 中文字幕一区二区人妻痴汉电车| 中文字幕在线一区免费| 亚洲天堂网站在线| 禁久久精品乱码| 精品国产乱码久久久久久蜜柚| 黄色视屏在线免费观看| 亚洲欧美日韩视频一区| 中文字幕久久熟女蜜桃| 中文字幕日本不卡| 熟女人妻一区二区三区免费看| 亚洲国产国产亚洲一二三 | 国产精品一区二区av日韩在线| 国产成+人+综合+亚洲欧美丁香花| 搞黄视频在线观看| 欧美一区二区三区免费在线看| 免费无码毛片一区二区app| 成人免费视频免费观看| 国产精品少妇在线视频| 国产精品久久久久9999赢消| 成人欧美一区二区三区在线观看| 国产免费拔擦拔擦8x高清在线人| 亚洲天堂免费视频| 国产精品视频一区二区三区,| 亚洲一区影音先锋| 一区二区黄色片| 国产一区二区视频在线播放| 怡红院av亚洲一区二区三区h| 欧美伦理影院| 国产激情一区二区三区在线观看| 97成人资源| 免费不卡欧美自拍视频| 青青草免费观看免费视频在线| 欧美高清一级片在线| 日韩精品一区二区在线播放| 国产精品国产自产拍在线| 国产午夜在线一区二区三区| 日本在线不卡视频| av在线com| 日韩美女一区二区三区在线观看| www日韩av| 日韩一区二区三免费高清在线观看| 久久久久久伊人| 免费在线观看黄色网| 日韩精品中文字幕在线观看| 又骚又黄的视频| 色偷偷成人一区二区三区91| 欧美黄色aaa| 国产欧美一区二区精品仙草咪| 少妇精品无码一区二区| 免费高清视频精品| 18禁男女爽爽爽午夜网站免费| 婷婷亚洲五月色综合| 欧美三级网色| 日韩欧美ww| 不卡日韩av| 91精品一久久香蕉国产线看观看| 日本a级片电影一区二区| japanese色国产在线看视频| 久久综合亚洲社区| 亚洲xxxxxx| 国产亚洲精品91在线| 天天操天天干天天舔| 精品女同一区二区| 国产成人毛毛毛片| 欧美精品成人一区二区三区四区| 在线观看国产区| 狠狠躁18三区二区一区| 国产精品6666| 亚洲小说欧美激情另类| 看免费黄色录像| 中文字幕制服丝袜一区二区三区 | 九九视频免费观看视频精品| 国产精品免费看一区二区三区| 国产精品一区二区美女视频免费看| 国产精品国产福利国产秒拍| 综合另类专区| 4388成人网| 水蜜桃在线视频| 国内伊人久久久久久网站视频| 亚洲小说区图片| 久热精品视频在线观看| 国产不卡在线| 久久五月天综合| 毛片在线看网站| 久久精品欧美视频| 哥也色在线视频| 欧美成人黑人xx视频免费观看| 欧美人xxx| 插插插亚洲综合网| 日本在线观看高清完整版| 欧美国产欧美亚洲国产日韩mv天天看完整| 黄色片网站在线| 九九久久综合网站| 欧美xxxx少妇| 欧美在线不卡区| 午夜精品成人av| 国产精品一区二区久久久| 精品69视频一区二区三区| 成人黄色av网站| 欧美专区一区| 好吊色欧美一区二区三区| 尤物tv在线精品| 一区一区视频| 黑丝一区二区| 浮妇高潮喷白浆视频| 丝袜美腿一区二区三区| 亚洲这里只有精品| 国产精品77777| 亚洲精品乱码久久久久久不卡| 2020日本不卡一区二区视频| 精品一区二区三区蜜桃在线| 亚洲欧洲日本在线| 国产午夜福利一区二区| 欧美日韩美女在线观看| 亚洲中文无码av在线| 欧美久久一区二区| 欧美一区二区公司| 亚洲视频在线免费看| 欧美三级理伦电影| 国内精品久久久久影院优| 成人免费影院| 亚洲999一在线观看www| 久久porn| 中文字幕日韩精品一区二区| 亚洲二区视频| 成人亚洲精品777777大片| 国产精品99久| 久久午夜福利电影| 亚洲综合图片区| 中文字幕乱伦视频| 精品国产凹凸成av人网站| 九色在线视频蝌蚪| 九九精品视频在线观看| 蜜臀国产一区| 国产91aaa| japanese国产精品| 人妻少妇精品无码专区二区| 蜜桃av噜噜一区| 久久人妻一区二区| 亚洲少妇中出一区| 五月天激情四射| 亚洲二区在线播放视频| 日本欧美在线视频免费观看| 97婷婷大伊香蕉精品视频| 国产成人免费av一区二区午夜| 精品在线视频一区二区| 亚洲一本二本| 香蕉视频禁止18| 97se亚洲国产综合在线| 99热精品免费| 91久久精品一区二区| 天天干天天操av| 日韩久久久久久久久| 在线精品视频一区二区| 亚洲免费黄色片| 久久精品久久精品亚洲人| 一区二区电影免费观看| 91日韩久久| 99精品网站| 爱情岛论坛vip永久入口| av在线综合网| 久草福利资源在线观看| 欧美卡1卡2卡| 91涩漫在线观看| 日韩av色综合| 亚洲免费观看高清完整版在线观| 精品人妻大屁股白浆无码| 精品一二线国产| 人妻无码一区二区三区免费| 色丁香久综合在线久综合在线观看| 亚洲黄色小说网址| 欧美成人小视频| 国产激情一区| 免费观看国产视频在线| 精品午夜久久福利影院| 欧美另类69xxxx| 欧美视频在线一区二区三区 | 亚洲成成品网站| 人交獸av完整版在线观看| 亚洲a在线观看| 亚洲a一区二区三区| 成人不卡免费视频| 中文字幕视频一区| 国产情侣一区二区| 久久成年人视频| 日韩精品中文字幕一区二区| 男人的天堂成人| 国产成人免费高清| 国产福利久久久| 亚洲国产精品va在线| 神马久久午夜| 欧美最大成人综合网| 日韩成人一区二区| 国产一二三四视频| 欧美一级在线观看| 超碰97免费在线| 久久精品国产第一区二区三区最新章节| 亚洲精品女人| 成人午夜剧场视频网站| 欧美伊人久久大香线蕉综合69| 91免费在线| 亚洲综合中文字幕在线观看| 国产一区美女| 中文字幕一二三四区| 欧美视频日韩视频在线观看| av在线二区| 97碰碰视频| 香蕉久久a毛片| 国产成人一区二区在线观看| 欧美男人的天堂一二区| 欧美videosex性欧美黑吊| 久久99精品国产一区二区三区| 视频在线观看91| 免费看一级大片| 亚洲第一天堂av| 成人黄色图片网站| 国产高清不卡无码视频| 91日韩精品一区| 97成人免费视频| 国内免费精品永久在线视频| 精品免费一区二区| 久久精品无码一区二区三区毛片 | 在线免费观看av网址| 久久躁日日躁aaaaxxxx| 色天下一区二区三区| 中文字幕精品一区二区三区在线| 亚洲国产精品久久艾草纯爱| 国产在线视频网| 国产成人精品一区二区三区福利| 美日韩精品视频| 私库av在线播放| 亚洲天堂网站在线观看视频| 日韩激情综合| 韩国中文字幕av| 激情懂色av一区av二区av| 麻豆网站在线观看| 免费看污久久久| 国产激情一区二区三区四区| 无码人妻av免费一区二区三区 | 91啪亚洲精品| 国产人妖在线播放| 国产精品18久久久久久首页狼 |