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

Silverlight中連接MySQL數據庫實例詳解

開發 后端
在這里我們將討論的是Silverlight中連接MySQL數據庫實例,希望對大家做好WEB開發有所幫助。

本文將重點講述Silverlight中連接MySQL數據庫實例,這在RIA開發中比較基礎,但是也是比較重要的內容。希望通過本文能讓大家對連接MySQL有更深刻的理解。

#T#

在銀光中國網(SilverlightChina.Net)有一篇"Silverlight與常用數據庫互操作系列"文章,其中介紹了使用Silverlight存取不同數據庫的方法和步驟。但是對于Silverlight存取MS SQL介紹的不夠全面,這里我想介紹Silverlight如何通過WCF訪問MSSQL數據庫存儲過程的。希望對大家能夠有所幫助。

我們要實現, 用戶輸入用戶名和密碼后,點擊登錄按鈕,傳遞用戶名和密碼到服務器端, 通過WCF訪問MSSQL數據庫,調用存儲過程,在服務器端對用戶名和密碼進行匹配,匹配成功,則返回登錄成功,否則,則是失敗。

在文章開始前,我們需要做一下準備工作,

開發環境需求: VS2008 SP1, Silverlight 3 Develop Tools for VS2008 SP1, 客戶端Silverlight 3 Runtime, MSSQL 2005 SP3 ;

建立例程數據庫 SilverlightDemo,在數據庫中建立一個新表 Users,包含以下字段;

 建立新表

添加內容到Users表,為了方便起見,密碼全部使用明文,在正式項目中,建議對密碼字段進行加密使用。

 字碼段加密

這里,我們驗證用戶名和密碼,有兩種簡單方式,

一是使用存儲過程讀取用戶名和密碼,然后在服務器端進行用戶名和密碼匹配校驗,如果查找到匹配數據,則返回登錄成功,否則,則是登錄失敗;

二是傳用戶名和密碼到存儲過程中,在數據庫存儲過程中進行判斷,使用Select語句進行查找,對應用戶名和密碼,如果查找到匹配結果,則返回用戶ID, 服務器端接收到用戶ID,則返回登錄成功,否則,則是失敗;

在本例中,主要是對Silverlight訪問數據庫進行講述,所以,對于驗證方法,不進行詳細描述和講解,如果有問題,可以留言給我,我們繼續討論,這里,我將使用第一種驗證方法。 為此,建立一個簡單的存儲過程:

  1. CREATE PROCEDURE [dbo].[Login]  
  2. ( @UserName Varchar(30))  
  3.  AS       
  4.         Select cUserName, cPassword  
  5.         From Users  
  6.         Where cUserName = @UserName   
  7.      RETURN   
  8. SET NOCOUNT ON 

 在完成上面的準備工作后,開始建立新的Silverlight項目,

1. 建立一個新項目"SilverlightDBDemo",

新項目

2. 在MainPage中建立簡單的登錄界面,如下:

登陸界面

3. 在Web項目中添加新選項

Web項目

4. 添加一個簡單的用戶信息類Users,作為WCF的契約成員,當我們從數據庫中讀取信息后,將賦值給該類的契約成員,方便客戶端進行調用;

WCF成員

VS2008將自動生成Users類代碼,在類命名前添加數據契約屬性[DataContract()]。 為了能夠使綁定數據返回修改通知,這里需要繼承INotifyPropertyChanged接口,該步驟不添加對本教程也沒有影響,為了以后例程代碼完整性,這里我繼承了該接口。在接口上點擊右鍵,生成代碼。

Users類代碼

代碼如下:

  1. namespace SilverlightDBDemo.Web  
  2.  {  
  3.      [DataContract()]  
  4.      public class Users : INotifyPropertyChanged  
  5.      {  
  6.    
  7.          #region INotifyPropertyChanged Members  
  8.    
  9.          public event PropertyChangedEventHandler PropertyChanged;   
  10.         #endregion  
  11.     }  
  12. }  

5. 在Users類中,添加契約成員

  1. private string userName;  
  2. [DataMember()]  
  3.  public string UserName  
  4.  {  
  5.      get { return userName; }  
  6.      set { userName = value;}  
  7.  }  
  8.  
  9.  private string password;  
  10. [DataMember()]  
  11. public string Password  
  12. {  
  13.     get { return password;  }  
  14.     set { password = value; }  

6. 建立構造函數 public Users(string sUserName,string sPassword),傳遞用戶名和密碼給契約成員;

  1. using System;  
  2. using System.ComponentModel;  
  3. using System.Runtime.Serialization;  
  4.  
  5. namespace SilverlightDBDemo.Web  
  6. {  
  7.     [DataContract()]  
  8.     public class Users : INotifyPropertyChanged  
  9.     {  
  10.        private string userName;  
  11.        [DataMember()]  
  12.        public string UserName  
  13.        {  
  14.            get { return userName; }  
  15.            set { userName = value;}  
  16.        }  
  17.  
  18.        private string password;  
  19.        [DataMember()]  
  20.        public string Password  
  21.        {  
  22.            get { return password;  }  
  23.            set { password = value; }  
  24.        }  
  25.  
  26.        public Users(string sUserName,string sPassword)  
  27.        {  
  28.            UserName = sUserName;  
  29.            Password = sPassword;  
  30.        }  
  31.  
  32.        #region INotifyPropertyChanged Members  
  33.  
  34.        public event PropertyChangedEventHandler PropertyChanged;  
  35.  
  36.        #endregion  
  37.    }  

7. 添加"Silverlight-enabled WCF Service",修改服務名字為 DBService.svc,需要注意的是,WCF service對于Silverlight僅支持BasicHttpBinding,而VS2008自動生成是customBinding,很多朋友說使用了"Silverlight-enabled WCF Service",鏈接數據庫仍舊失敗,無法找到遠程服務器,是因為沒有使用BasicHttpBinding進行通訊,造成的失敗。

后文我將講述如何修改。

[[7946]]

8. 添加后,在Web服務器端會有DBService.svc和DBService.svc.cs文件出現,VS2008將自動更新Web項目的類庫引用;

WEB服務器上顯示

9. 雙擊進入DBService.svc.cs文件,可以看到以下代碼:

  1. using System;  
  2.  using System.Linq;  
  3.  using System.Runtime.Serialization;  
  4.  using System.ServiceModel;  
  5.  using System.ServiceModel.Activation;  
  6.  using System.Collections.Generic;  
  7.  using System.Text;  
  8.    
  9.  namespace SilverlightDBDemo.Web  
  10. {  
  11.     [ServiceContract(Namespace = "")]  
  12.     [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]  
  13.     public class DBService  
  14.     {  
  15.         [OperationContract]  
  16.         public void DoWork()  
  17.         {  
  18.             // Add your operation implementation here  
  19.            return;  
  20.         }  
  21.  
  22.         // Add more operations here and mark them with [OperationContract]  
  23.     }  

這里我們沒有修改ServiceContract命名空間,所以保持默認為空,AspNet的兼容需求模式我們保持默認。在正式項目中,我們習慣將所有的[OperationContract]函數放入一個接口文件中,這樣方便擴展以及維護,在本例,為了方便大家理解,就不把[OperationContract]放入接口文件。 在VS2008自動生成代碼下面直接添加數據庫訪問代碼。

10. 在添加服務器端數據庫訪問代碼前,需要修改Web.Config文件。和Asp.Net項目一樣,在鏈接數據庫前,我們首先需要在Web.Config中配置數據庫連接字符串,請自行替換數據庫登錄ID和密碼

  1.   <appSettings> 
  2.     <add key="DbServiceConnectionString" value="Data Source=(Local);  
  3. Initial Catalog=SilverlightDemo;  
  4. User Id=dev;Password=dev;"/> 
  5.    </appSettings> 

11. 前文已經說過,Silverlight僅支持使用BasicHttpBinding通過WCF service進行通訊,而VS2008自動生成的代碼是customBinding,所以,我們也需要在Web.Config中進行修改.下面是VS2008自動生成的Web.Config部分代碼,劃線部分是下面要修改的部分。

  1. <system.serviceModel> 
  2.    <behaviors> 
  3.     <serviceBehaviors> 
  4.      <behavior name="SilverlightDBDemo.Web.DBServiceBehavior"> 
  5.       <serviceMetadata httpGetEnabled="true" /> 
  6.       <serviceDebug includeExceptionDetailInFaults="False" /> 
  7.      </behavior> 
  8.     </serviceBehaviors> 
  9.    </behaviors> 
  10.   <bindings> 
  11.    <customBinding> 
  12.     <binding name="customBinding0"> 
  13.      <binaryMessageEncoding /> 
  14.      <httpTransport /> 
  15.     </binding> 
  16.    </customBinding> 
  17.   </bindings> 
  18.   <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
  19.   <services> 
  20.    <service behaviorConfiguration="SilverlightDBDemo.Web.DBServiceBehavior" 
  21.     name="SilverlightDBDemo.Web.DBService"> 
  22.     <endpoint address="" binding="customBinding" bindingConfiguration="customBinding0" 
  23.      contract="SilverlightDBDemo.Web.DBService" /> 
  24.     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
  25.    </service> 
  26.   </services> 
  27. </system.serviceModel> 

-->這里我們需要修改以下幾個地方:

首先刪除customBinding,從上面代碼,第10行,到17行,使用下面代碼替換:

  1.  <bindings> 
  2.    <basicHttpBinding> 
  3.      <binding name="BasicHttpBinding_IDataService" 
  4.          maxBufferPoolSize="2147483647" 
  5.         maxReceivedMessageSize="2147483647" 
  6.          maxBufferSize="2147483647"> 
  7.        <readerQuotas 
  8.            maxArrayLength="2147483647" 
  9.            maxBytesPerRead="2147483647" 
  10.           maxDepth="2147483647" 
  11.           maxNameTableCharCount="2147483647" 
  12.           maxStringContentLength="2147483647" /> 
  13.     </binding> 
  14.   </basicHttpBinding> 
  15. </bindings> 

其中那些2147483647之類的屬性可以刪除,但是如果讀取數據庫中的大型表格,就需要設置緩沖池之類的尺寸了。這里,我們已經使用了basicHttpBinding. Binding name我使用了BasicHttpBinding_DBService,大家可以隨意更換,下面將用到。

然后修改22行和23行的代碼,將endpoint中的binding,內容修改為basicHttpBinding,bindingConfiguration的內容修改為BasicHttpBinding_DBService。

  1. <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_DBService" 
  2.      contract="SilverlightDBDemo.Web.DBService" /> 

12. 現在我們可以在DBService.svc.cs中添加存取數據庫代碼,對用戶名和密碼進行簡單匹配,這里不再著重講述如何條件匹配登錄信息。這里演示了如何調用數據庫存儲過程。完成存取數據庫代碼后,成功編譯Web項目。代碼有點長,這里折疊起來。

  1. private string connectionString = WebConfigurationManager.AppSettings["DbServiceConnectionString"];  
  2.  
  3.         [OperationContract]  
  4.         public bool GetUser(string cUserName, string cPassword)  
  5.         {  
  6.             SqlConnection conn = new SqlConnection(connectionString);  
  7.             SqlCommand cmd = new SqlCommand("Login", conn);  
  8.             cmd.CommandType = CommandType.StoredProcedure;  
  9.             cmd.Parameters.AddWithValue("@UserName", cUserName);  
  10.  
  11.            try 
  12.            {  
  13.                conn.Open();  
  14.                SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleRow);  
  15.                if (reader.Read())  
  16.                {  
  17.                    Users user = new Users((string)reader["cUserName"],  
  18.                        (string)reader["cPassword"]);  
  19.                    if (user.Password == cPassword)  
  20.                    {  
  21.                        return true;  
  22.                    }  
  23.                    else 
  24.                    {  
  25.                        return false;  
  26.                    }  
  27.                }  
  28.                else 
  29.                {  
  30.                    return false;  
  31.                }  
  32.            }  
  33.            finally 
  34.            {  
  35.                conn.Close();  
  36.            }  
  37.        } 

13. 在SilverlightDBDemo客戶端,點擊右鍵添加服務引用

客戶端

14. 在彈出窗口中,點擊"Discover",查找本地WCF service。在地址欄會自動搜索到本地的Service引用,在Services樹形框中我們可以看到,在服務器端建立的DBService.svc,雙擊打開,可以看到,我們建立的GetUser函數,以及默認的DoWork函數。修改下面的命名空間為"DBService",方便調用。

彈出窗口

15. 點擊"Advanced.."高級按鈕,確認選中"Reuse types in referenced assembiles",如下圖,

高級按鈕

16. 然后,點擊確定,會在客戶端中生成DBService服務引用。

 客戶端生成 

17. 在生成DBService服務引用后,VS2008會自動生成一個ServiceReferences.ClientConfig文件。

我們需要留意查看一下該文件內容。其中,bindings信息是basicHttpBinding,而endpoint內容和Web.Config中的內容相同。這里我們不需要修改任何代碼。

  1. <configuration> 
  2.      <system.serviceModel> 
  3.          <bindings> 
  4.              <basicHttpBinding> 
  5.                  <binding name="BasicHttpBinding_DBService" maxBufferSize="2147483647" 
  6.                      maxReceivedMessageSize="2147483647"> 
  7.                      <security mode="None"> 
  8.                          <transport> 
  9.                              <extendedProtectionPolicy policyEnforcement="Never" /> 
  10.                         </transport> 
  11.                     </security> 
  12.                 </binding> 
  13.             </basicHttpBinding> 
  14.         </bindings> 
  15.         <client> 
  16.             <endpoint address="http://localhost/SilverlightDBDemo.Web/DBService.svc" 
  17.                 binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_DBService" 
  18.                 contract="DBService.DBService" name="BasicHttpBinding_DBService" /> 
  19.         </client> 
  20.     </system.serviceModel> 
  21. </configuration> 

18. 下面我們將在客戶端調用該服務引用,獲取數據庫的返回值,根據返回值,我們將簡單判斷登錄是否成功。

進入MainPage.xaml.cs中,建立GetUser方法。該代碼中EndpointAddress是最重要的,出現沒有發現遠程服務器錯誤,和這里設置也有關系。在client_GetUserCompleted中,e.Result代表了數據庫返回值。可以接受任何值,大家可以根據需要進行值類型轉換。每次,用戶點擊登陸按鈕,Silverlight客戶端都會向服務器端請求驗證,返回結果會在提示信息欄顯示。

  1. private void GetUser()  
  2.         {  
  3.             EndpointAddress address = new EndpointAddress(new Uri(Application.Current.Host.Source, "/SilverlightDBDemo.Web/DBService.svc"));  
  4.             DBServiceClient client = new DBServiceClient(new BasicHttpBinding(), address);  
  5.             client.GetUserCompleted += client_GetUserCompleted;  
  6.             client.GetUserAsync(txtUsername.Text, pbPassword.Password);  
  7.         }  
  8.  
  9.         private void client_GetUserCompleted(object sender, GetUserCompletedEventArgs e)  
  10.        {  
  11.            try 
  12.            {  
  13.                if (e.Result)  
  14.                {  
  15.                    tbMessage.Text = "登錄成功!";  
  16.                }  
  17.                else 
  18.                {  
  19.                    tbMessage.Text = "登錄失敗!";  
  20.                }  
  21.            }  
  22.            catch (Exception error)  
  23.            {  
  24.                tbMessage.Text = error.ToString();  
  25.            }  
  26.        }  
  27.  
  28.        private void btLogin_Click(object sender, RoutedEventArgs e)  
  29.        {  
  30.            GetUser();  
  31.        } 
登錄成功如下圖:

[[7947]]

到這里為止,我想你已經學會了如何使用WCF存取MSSQL數據庫了

原文標題:圖文詳解Silverlight訪問MSSQL數據庫

鏈接:http://www.cnblogs.com/jv9/archive/2009/12/30/1635655.html

責任編輯:彭凡 來源: 博客園
相關推薦

2009-09-07 15:25:24

MySQL數據庫互操作Silverlight

2011-07-26 18:11:56

iPhone Sqlite 數據庫

2011-07-05 10:16:16

Qt 數據庫 SQLite

2011-07-05 10:03:00

Qt MYSQL 數據庫

2011-05-19 13:25:14

Oracle數據庫

2010-04-01 09:45:38

NoSQL

2010-11-29 11:47:26

連接Sybase數據庫

2011-06-21 15:11:04

QT 數據庫

2019-09-27 08:55:14

數據庫MySQL服務器

2010-06-01 14:42:55

連接MySQL數據庫

2011-03-29 10:47:49

ORACLE數據庫

2018-07-30 15:00:05

數據庫MySQLJOIN

2009-06-01 09:57:43

netbeans連接數netbeans數據庫netbeans連接m

2011-07-05 09:35:52

Ubuntu Qt Mysql

2020-09-22 15:56:31

Java

2011-05-26 13:42:50

MFC連接MySql數據庫

2024-04-03 00:06:03

2010-03-10 11:29:47

MySQL數據庫性能調

2011-07-05 09:54:04

2011-08-11 16:55:34

Oracle數據庫AWR
點贊
收藏

51CTO技術棧公眾號

一区二区欧美激情| 都市激情亚洲色图| y111111国产精品久久婷婷| 国产一二三四在线| 图片婷婷一区| 欧美高清视频www夜色资源网| 欧美一级爱爱视频| 韩国中文免费在线视频| 麻豆成人久久精品二区三区红 | 欧洲亚洲精品在线| 黄黄视频在线观看| 国产一级免费在线观看| 国产激情一区二区三区| 日本欧美在线视频| 久久久精品人妻一区二区三区四| 国产成人ay| 日韩精品一区二区三区中文不卡 | 99re66热这里只有精品4| 亚洲欧洲无码一区二区三区| 久久av免费观看| 国产超碰人人模人人爽人人添| 久久久精品五月天| 欧美国产一区二区三区| 国产美女网站视频| 免费av一区二区三区四区| 欧美一区二区视频在线观看2022| 人妻少妇被粗大爽9797pw| av片在线观看免费| 国产激情视频在线播放| 99ri日韩精品视频| 欧美日韩在线一区二区| 精品人妻一区二区三区四区在线 | 精品av导航| 欧美电影一区二区| 国产又粗又长又大的视频| 暧暧视频在线免费观看| 亚洲男人天堂一区| 日韩一区二区三区高清| 欧美午夜黄色| 97精品国产97久久久久久久久久久久 | 国产一区二区三区av电影| 国产盗摄xxxx视频xxx69| 日韩欧美一区二区一幕| 影音先锋久久资源网| 久久国产精品影视| 中国一级片在线观看| 成人3d动漫在线观看| 亚洲日本欧美日韩高观看| 影音先锋黄色资源| 高清日韩中文字幕| 欧美mv日韩mv| 亚洲乱妇老熟女爽到高潮的片| 欧美午夜网站| 日韩一级黄色大片| 色婷婷狠狠18禁久久| 中文字幕亚洲在线观看| 日韩久久精品一区| 亚洲美女精品视频| 国内自拍欧美| 亚洲女人天堂视频| 国精产品一区二区三区| 精品国产一区二区三区噜噜噜| 亚洲日本成人女熟在线观看 | 香蕉视频911| 99视频精品全部免费在线| 精品国产综合区久久久久久| 午夜av免费观看| 国产日韩欧美麻豆| 伊人情人网综合| 午夜成年人在线免费视频| 一区二区在线免费观看| 妞干网在线观看视频| 中文字幕高清在线播放| 91国产精品成人| 日本高清久久久| 日韩欧美久久| 日韩精品欧美国产精品忘忧草| 深爱五月激情网| 欧美第一精品| 久久久91精品国产| 日韩黄色三级视频| 日韩和欧美的一区| 成人写真视频福利网| 六月婷婷综合网| 国产亚洲精品bt天堂精选| 亚洲一区二区三区乱码| 免费在线观看的电影网站| 日韩欧美亚洲范冰冰与中字| 天天综合网日韩| 超碰在线一区| 日韩一中文字幕| 日韩视频免费观看高清| 麻豆成人久久精品二区三区红| 国产高清精品一区二区| 黄色影院在线播放| 亚洲精品免费在线播放| 成人黄色片视频| 日本精品视频| 在线观看精品国产视频| 日产电影一区二区三区| 蜜桃精品在线观看| 精品人伦一区二区三区| 天堂中文а√在线| 精品国产鲁一鲁一区二区张丽| 91精品999| 中文字幕中文字幕精品| 超碰日本道色综合久久综合| 在线视频一区二区三区四区| 国产精品一区二区x88av| 日日夜夜精品网站| www.色在线| 日韩一卡二卡三卡| 免费看的黄色录像| 在线综合亚洲| 成人av电影免费| 韩国一区二区av| 国产又粗又猛又爽又| 国产福利一区在线观看| 日韩影视精品| 最近高清中文在线字幕在线观看1| 91精品国产欧美日韩| www..com.cn蕾丝视频在线观看免费版| 欧美freesex交免费视频| 国产精品亚发布| 黄上黄在线观看| 精品国产乱码久久久久久婷婷 | 国产尤物av一区二区三区| 美女色狠狠久久| 亚洲视频在线播放| 亚洲精品www久久久久久| 国产精品996| 在线视频一二三区| 看片一区二区| 国产伦精品一区二区三区免费迷| 日韩av一区在线观看| 国产精品白丝喷水在线观看| 麻豆精品在线播放| 开心色怡人综合网站| 爱啪啪综合导航| 亚洲国产精品一区二区三区| 久久久久久久久久91| 国产精品夜夜爽| 日韩视频 中文字幕| 激情久久免费视频| 久久夜色精品国产欧美乱| 在线免费观看中文字幕| 欧美国产精品一区| 午夜在线观看av| 成人在线一区| 国产日韩视频在线观看| 黄色视屏免费在线观看| 欧美一区二区精品在线| 欧美人禽zoz0强交| 国产精品18久久久久久vr| 大地资源网在线观看免费官网| 国产亚洲久久| 久久久欧美一区二区| 蜜桃av噜噜一区二区三区麻豆| 亚洲综合图片区| 在线观看免费视频黄| 国产日韩1区| 欧美日韩国产一二| 91亚洲精品| 久久中国妇女中文字幕| 高h放荡受浪受bl| 五月天激情综合| 91视频在线网站| 久久国产精品72免费观看| 六月婷婷激情网| 国内精品麻豆美女在线播放视频 | 久久人人视频| 九九精品在线视频| 香蕉久久国产av一区二区| 日本福利一区二区| 亚洲AV成人无码精电影在线| 国产成人三级在线观看| 国产h视频在线播放| 北条麻妃国产九九九精品小说 | 5252色成人免费视频| 理论在线观看| 欧美日韩国产首页| 久久久精品人妻一区二区三区四| 久久综合色8888| 精品久久久99| 在线亚洲激情| 在线一区高清| 丝袜美腿综合| 亚洲xxxxx性| 丝袜美腿诱惑一区二区三区| 精品国产一区av| 无码精品在线观看| 欧美精品在线一区二区三区| 久久久久99精品| 欧美国产综合一区二区| 国产高潮失禁喷水爽到抽搐| 久久精品二区三区| 特大黑人娇小亚洲女mp4| 日韩免费电影在线观看| 亚洲aⅴ日韩av电影在线观看| a一区二区三区| 久久99久久99精品免观看粉嫩| 欧美zzoo| 亚洲国产高清自拍| 国产精品永久久久久久久久久| 午夜a成v人精品| 中文字幕在线有码| 中文av字幕一区| 亚洲国产精品成人综合久久久| 久久99精品国产麻豆不卡| jizzjizzxxxx| 亚洲国产99| 青草全福视在线| 日本一区二区在线看| 精品无码久久久久国产| 久久久久九九精品影院| 国产精品久久久久久网站| 国产福利在线免费观看| 久久精品国产欧美激情| 国产视频二区在线观看| 亚洲精品黄网在线观看| 亚洲国产精品suv| 欧美麻豆精品久久久久久| 99超碰在线观看| 亚洲va在线va天堂| 麻豆亚洲av熟女国产一区二| 亚洲色图一区二区三区| 国产视频精品免费| 日本一区二区综合亚洲| 亚洲精品成人无码| 99国产一区二区三精品乱码| 亚洲天堂2024| 成人午夜激情影院| 久久久久国产免费| 国产精品99精品久久免费| 日韩欧美中文视频| 国模少妇一区二区三区| 自拍偷拍21p| 美腿丝袜亚洲三区| 国产熟女高潮视频| 久久一本综合频道| 老司机午夜av| 日韩电影在线看| 超碰在线播放91| 日本在线不卡视频| 天天插天天操天天射| 日韩和的一区二区| 亚洲另类第一页| 久久99最新地址| 国产精品久久久久久9999| 久久99国内精品| 91网址在线观看精品| 国产在线播放一区| www.51色.com| 国产69精品一区二区亚洲孕妇| 久久无码专区国产精品s| 国产91精品久久久久久久网曝门 | 欧美精品久久久久久久| 99热99re6国产在线播放| 国外色69视频在线观看| 中文字幕在线直播| 国产成人亚洲精品| 欧美性生活一级| 91传媒免费看| 全国精品免费看| 青娱乐国产91| 亚洲精品国产首次亮相| 大地资源网在线观看免费官网| 在线看片一区| 黄色国产小视频| 国产一区欧美日韩| 好男人香蕉影院| 久久久精品综合| 日韩在线不卡av| 五月婷婷综合在线| 欧美一区二区三区久久久| 欧美日韩一区三区| 亚洲第一黄色片| 亚洲男人天堂2024| 国产日产一区二区三区| 国内精品久久久久| www.一区| 国产精品日韩高清| 国产免费久久| 白白操在线视频| 久久字幕精品一区| 古装做爰无遮挡三级聊斋艳谭| 91在线视频观看| 我要看一级黄色录像| 亚洲成人午夜影院| 中文在线观看免费高清| 精品国产污网站| 永久免费在线观看视频| 性金发美女69hd大尺寸| www.一区| 美女一区视频| 国产精品vip| 欧美性猛交久久久乱大交小说 | 亚洲AV无码片久久精品| |精品福利一区二区三区| 日韩精品无码一区二区| 911国产精品| 黑人与亚洲人色ⅹvideos| 欧美激情中文网| 日韩三级成人| 欧美日韩精品中文字幕一区二区| 你懂的国产精品| 性刺激的欧美三级视频| 99久久伊人精品| 一级黄色录像视频| 欧洲国内综合视频| 手机在线观看免费av| 久久综合九色九九| 国产精品亚洲一区二区三区在线观看 | 久久精品99久久香蕉国产色戒| 亚洲美女尤物影院| www.av一区视频| 久久久人成影片免费观看| 黄色一级大片在线观看| av一区二区不卡| 国产一级免费观看| 日韩欧美激情在线| 久久日韩视频| 国产欧美亚洲精品| 成人3d动漫在线观看| 欧美极品欧美精品欧美图片| 成人性生交大片免费看中文网站| 农村妇女精品一区二区| 欧美日韩精品一区二区天天拍小说 | 国产精品一色哟哟哟| 一级片视频免费看| 欧美日韩国产黄| 亚洲av无码乱码在线观看性色| www亚洲欧美| 国外成人福利视频| 亚洲不卡一卡2卡三卡4卡5卡精品| 亚洲午夜久久久久久尤物| 奇米777在线视频| 18成人在线视频| 国产手机av在线| 欧美成年人视频网站| 国产精品欧美一区二区三区不卡| 在线亚洲美日韩| 国产精品一区二区在线观看不卡 | 成人综合国产精品| 手机在线电影一区| 一个色综合久久| 亚洲精品自拍动漫在线| 99产精品成人啪免费网站| 超薄丝袜一区二区| 2021年精品国产福利在线| 国产精品自拍合集| 成人一区二区三区视频| 久久精品国产av一区二区三区| 精品福利一区二区三区 | 国产精品久久久久99| 欧美日韩有码| 亚洲午夜激情影院| 一区二区视频在线看| 婷婷开心激情网| 日本精品久久久| 精品国产一区探花在线观看| 天天干天天干天天干天天干天天干| 国产精品乱子久久久久| 国产精品欧美综合亚洲| 久久91精品国产| 日韩av午夜| 91香蕉视频导航| 亚洲美女一区二区三区| 丰满人妻妇伦又伦精品国产| 51午夜精品视频| 日韩免费视频| 人妻av一区二区三区| 精品欧美aⅴ在线网站| 巨骚激情综合| 91在线色戒在线| 亚洲免费高清| 一级免费黄色录像| 亚洲成人久久网| 99re66热这里只有精品4| 亚洲欧美一二三| 91视频一区二区| 91丨九色丨蝌蚪丨对白| 欧美第一黄色网| 精品一区二区三区在线| av在线免费观看不卡| 日韩欧美视频一区二区三区| 麻豆最新免费在线视频| 国产精品视频在线免费观看| 天堂蜜桃91精品| 国产一级做a爱免费视频| 国产午夜精品视频| 亚洲超碰在线观看| www黄色在线| 一区二区三区高清不卡| 黄色视屏网站在线免费观看| 亚洲iv一区二区三区| 久久午夜视频| 五月天婷婷网站| 久久精品一偷一偷国产| 西野翔中文久久精品国产|