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

微軟WP7本機數據庫解決方案之SQLite

數據庫 其他數據庫 數據庫運維
篇幅所限,我僅介紹在Windows Phone 7系統中使用Sqlite Client for Windows Phone編程的部分技巧。

無論是從用戶的角度來看還是從開發人員的角度來看,Windows Phone 7給我們帶來眾多的新的和令人振奮的功能。與此同時,當前的Windows Phone 7系列也的確存在令許多用戶失望的缺憾。一個代表性的遺憾便是,Windows Phone 7缺乏本地數據庫API支持—當前的Windows Phone 7操作系統僅提供通過XML、客戶端獨立存儲和云存儲等幾種有限的數據訪問支持。那么,就本地數據庫功能來說,我們真的有沒有其他的選擇了嗎?當然不是這樣。如今各種開源社團如火如荼,已經有一些開發人員和團隊一直努力在填補這一方面的空白。

請注意,盡管目前已有多個嘗試實現了Windows Phone 7本地數據庫支持,但***,這些系統都需要運行于Windows Phone 7提供的獨立存儲基礎之上。在本系列文章中,我將向你介紹上述成員之一-Sqlite Client for Windows Phone。這是一種新的,功能強大且易于使用的Windows Phone 7本機數據庫解決方案,該系統公布于著名的開源網站CodePlex。篇幅所限,我僅介紹在Windows Phone 7系統中使用Sqlite Client for Windows Phone編程的部分技巧。

[備注]本系列文章中的案例程序調試環境包括:

  1. Windows 7;
  2. .NET 4.0;
  3. Visual Studio 2010;
  4. Windows Phone Developer Tools RTW;
  5. Sqlite Client for Windows Phone (http://sqlitewindowsphone.codeplex.com/);
  6. (推薦) sqlite-manager (http://code.google.com/p/sqlite-manager/);
  7. (推薦) MVVM Light Toolkit (http://mvvmlight.codeplex.com/).

一、Sqlite Client for Windows Phone簡介

大家都知道,SQLite是一個著名的開源的嵌入式的數據庫系統,目前已經提供對于iOS和Android的良好支持。在此,應當讓我們感謝Dan Ciprian Ardelean,是他帶給我們WP7版本的SQLite-C#-SQLite!最近幾個月,作者對早期的版本又進行了更新,得到一個功能更強大和更容易使用的解決方案,改名為Sqlite Client for Windows Phone,在知名的開源網站CodePlex上發布,網址是http://sqlitewindowsphone.codeplex.com/releases。

 

▲圖1. 下載Sqlite Client for Windows Phone的界面截圖

Sqlite Client for Windows Phone進行大范圍的更新,如提供對于布爾類型、大型數據(Blobs)以及事務的全面支持,此外,下載包中還一并提供了一個全面的示例,供開發者學習之用。

 

▲圖2. Sqlite Client for Windows Phone源碼工程及示例工程架構

接下來的操作就很簡單了:重新構建源碼工程,得到一個程序集Community.CsharpSqlite.WP.dll(Release版本大小是525 KB)。然后,在你的WP7 Silverlight 項目中添加對該程序集的引用。***,你便可以使用Sqlite Client for Windows Phone提供的本地數據庫支持功能了。

#p#

二、Sqlite Client for Windows Phone基礎類庫剖析

如果您以前有過任何基于SQL腳本的數據庫編程經驗,那么您可以輕松地使用Sqlite Client for Windows Phone功能。特別值得一提的是,此工程建基于以前的C#-SQLite項目之一,通過引入幾個幫助器類(在文件SQLiteClient.cs),即SQLiteException、SQLiteConnection和SQLiteCommand,進一步簡化了基本的數據庫和表相關操作。接下來的幾幅圖展示了Sqlite Client for Windows Phone中提供的主要組件及其之間的關聯關系。

 

▲圖3. Sqlite Client for Windows Phone最頂層組件

 

▲圖4. SQLiteConnection類中的主要組件

▲圖5. SQLiteCommand類中的主要組件

怎么樣!如果您以前熟悉任何基于SQL的數據庫開發,相信上面的這些組件對您會非常親切吧。

先別急,在正式使用Sqlite Client for Windows Phone之前,有必要再向您介紹另外一個非常有用的工具,名為sqlite-manager (http://code.google.com/p/sqlite-manager/)。這個工具是以FireFox插件的方式提供的。到現在您應該明白了,絕大多數與SQLite數據庫相關的操作,例如創建SQLite數據庫、表、視圖、索引等等,都可以通過sqlite-manager輕松完成。

1.使用SQLite Manager簡化數據庫管理

如前所述,SQLite Manager是一個Firefox插件,使用Firefox的加載項管理器你可以很容易地獲取和安裝這個控件(圖6)。

 

▲圖6. 使用Firefox的加載項管理器獲取和安裝SQLite Manager插件

如圖所示,如果你打開Firefox的插件管理器,然后輸入“SQLite Manager”搜索文本,你會很容易檢索到此加載項。然后,您可以點擊按鈕“添加到Firefox... ”開始下載并安裝SQLite Manager。請注意,在Firefox的提示后,你應該重新啟動Firefox以完成安裝。

使用SQLite Manager是容易的。說實在的,這是我***次使用SQLite Manager,我發現這個工具功能強大而且極易上手。如果您使用過VB6中,你可能熟悉其中內置的數據庫管理工具-VisData(以便以內置方式創建小型的Access數據庫)。說實話,VisData確實是不容易使用,但在當時我們覺得已經相當不錯了。現在,你只須記住,SQLite Manager的功能要比VisData強大1000倍。下圖展示了SQLite Manager的一個使用快照。

 

▲圖7. SQLite Manager使用快照

從圖中可見,你可以使用SQLite Manager來實現幾種各種SQLite相關操作。請注意,要想了解更多的有關于SQLite的概念及詳細使用語法,請從這款插件的幫助菜單中尋找答案。

另外,你也會注意到,在本文簡單的示例工程中,我僅創建了一個表格Customer,對應的數據庫文件為database1.sqlite(如圖8所示)。

 

▲圖8. 使用SQLite Manager定義表格Customer字段

在創建完數據庫database1.sqlite后,關閉SQLite Manager插件。然后,把此文件復制或移動到對應示例工程WP7SQLiteClient的根目錄下。請注意,接下來,把它的Build Action屬性設置為Resource模式。設置成這種模式的原因與接下來的操作方式相關。如果選擇Content模式,則在后臺的示例工程中你需要修改對應的部分源碼。

2.一個有用的工具類-DBHelper

如上所述,Sqlite Client for Windows Phone使用眾所周知的SQL操作針對典型的數據庫操作提供了一個高層次的封裝。因此,在Silverlight for Windows Phone 7編程中為了處理SQLite數據庫操作,我們可以直接使用在文件SQLiteClient.cs中定義的對象(在源庫項目),即SQLiteException、SQLiteConnection和SQLiteCommand等。

雖然Sqlite Client for Windows Phone并沒有提供與獨立存儲的直接互動,但顯然增加對獨立存儲支持是必要的,這樣可以改善系統的性能。因此,我們可以進一步封裝前面提到的SQLiteClient對象。為此,Chris開發了一個非常好用的實用工具類,叫做DBHelper。為了應用于我們自己的示例,我對它做了輕微的修改。完整的源碼如下。

#p#

列表1:更新版本的工具類DBHelper

  1. //others omitted…  
  2. using SQLiteClient;  
  3. using System.Linq;  
  4. using System.IO.IsolatedStorage;  
  5. using System.Collections.Generic;  
  6. using System.Collections.ObjectModel;  
  7. namespace WP7SQLiteClient.Helpers  
  8. {  
  9.    public class DBHelper  
  10.    {  
  11.       private String _dbName;  
  12.       private SQLiteConnection db = null;  
  13.       public DBHelper(String assemblyName, String dbName)  
  14.       {  
  15.          IsolatedStorageFile store =IsolatedStorageFile.GetUserStoreForApplication();  
  16.          if (!store.FileExists(dbName))  
  17.          {  
  18.             CopyFromContentToStorage(assemblyName, dbName);  
  19.          }  
  20.          _dbName = dbName;  
  21.       }  
  22.       ~DBHelper()  
  23.       {  
  24.          Close();  
  25.       }  
  26.       private void Open()  
  27.       {  
  28.          if (db == null)  
  29.          {  
  30.             db = new SQLiteConnection(_dbName);  
  31.             db.Open();  
  32.          }  
  33.       }  
  34.       private void Close()  
  35.       {  
  36.          if (db != null)  
  37.          {  
  38.             db.Dispose();  
  39.             db = null;  
  40.          }  
  41.       }  
  42.       //Insert operation  
  43.       public int Insert(T obj, string statement) where T : new()  
  44.       {  
  45.          try 
  46.          {  
  47.             Open();  
  48.             SQLiteCommand cmd = db.CreateCommand(statement);  
  49.             int rec = cmd.ExecuteNonQuery(obj);  
  50.             return rec;  
  51.          }  
  52.          catch (SQLiteException ex)  
  53.          {  
  54.             System.Diagnostics.Debug.WriteLine("Insert failed: " + ex.Message);  
  55.             throw ex;  
  56.          }  
  57.       }  
  58.       // Delete operation  
  59.       public void Delete(string statement) where T : new()  
  60.       {  
  61.          try 
  62.          {  
  63.             Open();  
  64.             SQLiteCommand cmd = db.CreateCommand(statement);  
  65.             cmd.ExecuteNonQuery();  
  66.          }  
  67.          catch (SQLiteException ex)  
  68.          {  
  69.             System.Diagnostics.Debug.WriteLine("Deletion failed: " + ex.Message);  
  70.             throw ex;  
  71.          }  
  72.       }  
  73.       //Query operation  
  74.       public List SelectList(String statement) where T : new()  
  75.       {  
  76.          Open();  
  77.          SQLiteCommand cmd = db.CreateCommand(statement);  
  78.          var lst = cmd.ExecuteQuery();  
  79.          return lst.ToList();  
  80.       }  
  81.       public ObservableCollection SelectObservableCollection(String statement)  
  82.       where T : new()  
  83.       {  
  84.          List lst = SelectList(statement);  
  85.          ObservableCollection oc = new ObservableCollection();  
  86.          foreach (T item in lst)  
  87.          {  
  88.             oc.Add(item);  
  89.          }  
  90.          return oc;  
  91.       }  
  92.       private void CopyFromContentToStorage(String assemblyName,String dbName)  
  93.       {  
  94.          IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();  
  95.          System.IO.Stream src = Application.GetResourceStream(  
  96.                                 new Uri("/" + assemblyName + ";component/" + dbName,UriKind.Relative)).Stream;  
  97.          IsolatedStorageFileStream dest = new IsolatedStorageFileStream(dbName,  
  98.                                           System.IO.FileMode.OpenOrCreate,  
  99.                                           System.IO.FileAccess.Write, store);  
  100.          src.Position = 0;  
  101.          CopyStream(src, dest);  
  102.          dest.Flush();  
  103.          dest.Close();  
  104.          src.Close();  
  105.          dest.Dispose();  
  106.       }  
  107.       private static void CopyStream(System.IO.Stream input,IsolatedStorageFileStream output)  
  108.       {  
  109.          byte[] buffer = new byte[32768];  
  110.          long TempPos = input.Position;  
  111.          int readCount;  
  112.          do 
  113.          {  
  114.             readCount = input.Read(buffer, 0, buffer.Length);  
  115.             if (readCount > 0)  
  116.             {  
  117.                output.Write(buffer, 0, readCount);  
  118.             }  
  119.          } while (readCount > 0);  
  120.          input.Position = TempPos;  
  121.       }  
  122.    }  

順便說一句,對于上面這個幫助類我也沒有提供細致的優化編碼。希望讀者根據您的相關工作能夠繼續進行這項工作(例如提供更好的泛型化的CRUD支持)并分享給廣大網友。簡言之,我主要是增加了插入和刪除方法。上面的代碼中最引起您注意是地方一定是方法CopyFromContentToStorage,正是借助這個方法我們實現了上述目標-建立起SQLite數據庫與獨立存儲的關系。

三、小結

本文中簡要介紹了Sqlite Client for Windows Phone的主要功能及相關的輔助開發工具。在接下來的第二篇文章中,我們將具體構建一個簡單的Windows Phone 7客戶端應用程序,當然要涉及到Sqlite Client for Windows Phone的基本編程技巧。

【編輯推薦】

  1. 微軟WP7本地數據庫之Sterling編程技巧
  2. 告訴你如何解決MySQL server has gone away問題
  3. 數據庫中分組字符串相加
  4. SQL點滴之收集SQL Server線程等待信息
  5. 數據庫的性能已成重多廠商關注的焦點
責任編輯:艾婧 來源: it168
相關推薦

2011-05-18 10:21:53

SQLite

2011-05-12 10:25:14

WP7數據庫Sterling

2011-02-28 10:42:14

Windows Pho微軟

2012-06-21 09:07:22

微軟WP7WP8

2011-05-12 13:03:36

WP7數據庫選擇

2011-04-27 09:58:56

Windows PhoLBS微軟

2011-03-29 13:03:59

IronRubyWindows Pho.NET

2011-07-27 09:53:39

MangoWindows Pho微軟

2012-07-06 09:26:13

Windows PhoWindows Pho

2012-01-01 19:33:19

2011-08-19 09:09:01

AndroidWP7Windows Pho

2011-06-10 09:03:36

AndroidWindows Pho開發者

2011-05-10 08:53:46

iOSWindows Pho開發者

2012-03-04 20:55:33

WP7

2013-10-18 15:27:30

微軟大數據微軟

2013-06-17 13:47:41

WP7開發Windows Pho文本框水印控件

2011-03-07 16:42:05

MySQL數據庫安全

2009-11-18 16:10:00

2011-02-01 17:44:22

Windows PhoAndroid微軟

2013-06-17 14:10:08

WP7開發Windows Pho豆瓣電臺
點贊
收藏

51CTO技術棧公眾號

第四色成人网| 美女视频一区| 久久久亚洲午夜电影| 国产精品免费视频xxxx| 三级影片在线看| 清纯唯美亚洲经典中文字幕| 在线观看欧美黄色| 日本老太婆做爰视频| 色婷婷视频在线| 麻豆国产欧美一区二区三区| 欧美激情奇米色| 色欲AV无码精品一区二区久久| 9999精品| 一本久久a久久精品亚洲| 日本免费在线视频观看| 日本亚洲欧美| 国产盗摄视频一区二区三区| 日韩av电影在线播放| 成年人一级黄色片| 精品视频99| 精品国产91亚洲一区二区三区婷婷| mm1313亚洲国产精品无码试看| 永久免费网站在线| 久久精品人人做人人爽人人| 成人自拍视频网站| 91福利在线观看视频| 中文国产一区| 欧美另类高清videos| 国产精品久久久视频| 婷婷精品在线观看| 日韩欧美中文字幕公布| 国产三级国产精品国产专区50| 爱啪啪综合导航| 亚洲欧美另类久久久精品| 日韩欧美99| 国产精品国产高清国产| 精品亚洲国内自在自线福利| 国产高清视频一区三区| wwwxxx亚洲| 尹人成人综合网| 欧美大片在线看| 九九精品视频免费| 日韩欧美一区免费| 在线看福利67194| 黄色aaa视频| 天天久久夜夜| 亚洲欧美制服另类日韩| av2014天堂网| 久9re热视频这里只有精品| 精品久久一二三区| 在线观看一区二区三区视频| 高清不卡一区| 日韩欧美综合在线| 丰满人妻一区二区三区大胸| 日韩精品三级| 精品久久久久久久久久久久包黑料| 99热这里只有精品2| 日本一区二区乱| 日韩午夜三级在线| 亚洲国产精品狼友在线观看| 综合中文字幕| 精品欧美乱码久久久久久 | 欧美性天天影院| 肉丝一区二区| 国产精品午夜在线观看| 中文字幕剧情在线观看一区| 伦xxxx在线| 亚洲精品国产高清久久伦理二区| 伊人网在线免费| 欧美人与禽猛交乱配| 亚洲国产精品久久久男人的天堂| 一二三四视频社区在线| 日本在线啊啊| 欧美日韩在线免费视频| 国产高清av片| 国产精品一线| 中文国产成人精品久久一| 人妻无码一区二区三区免费| 中文字幕亚洲精品乱码| 午夜精品久久久久久久白皮肤| 中文字幕在线字幕中文| 久久亚洲欧美| 亚洲999一在线观看www| 午夜影院在线视频| 中文字幕一区二区在线观看| 国产精品国产对白熟妇| 日韩av福利| 欧美一区二区三区免费观看视频| 午夜不卡久久精品无码免费| 精品国产美女| 久久99国产精品自在自在app| 亚洲日本韩国在线| 国产一区高清在线| 久久精品二区| 国产网友自拍视频导航网站在线观看| 亚洲综合网站在线观看| 久久久久久香蕉| 日韩av综合| 亚洲天堂网在线观看| 538任你躁在线精品视频网站| 国产精品久久久一区二区| 国产在线精品自拍| 日韩欧美在线番号| 亚洲另类色综合网站| 99视频精品免费| 成人av影音| 日韩日本欧美亚洲| 青青视频在线免费观看| 国产成a人亚洲精品| 色综合电影网| 蜜桃视频www网站在线观看| 欧美精品xxxxbbbb| 亚洲AV无码国产成人久久| 欧美国产三区| 国产精品视频xxx| 色wwwwww| 亚洲一区在线免费观看| 亚洲欧美天堂在线| 欧州一区二区| 欧洲成人性视频| 丁香六月色婷婷| 亚洲六月丁香色婷婷综合久久| av五月天在线| 久久综合色占| 欧美亚洲午夜视频在线观看| 成人午夜免费在线观看| 一区二区三区四区视频精品免费 | 波多野结衣之无限发射| 国产999精品在线观看| 在线a欧美视频| 69亚洲精品久久久蜜桃小说| 99热在这里有精品免费| 91亚洲精品国产| 99精品国产九九国产精品| 一本色道久久综合狠狠躁篇的优点| av大片免费观看| 成人午夜av在线| www.好吊操| 91在线一区| 久久免费视频在线观看| 欧美熟妇另类久久久久久不卡 | 好吊妞视频这里有精品| 欧美日本高清一区| 亚洲国产精品久久久久久久| 亚洲综合色自拍一区| 男人的天堂免费| 亚洲欧美一级二级三级| 亚洲自拍偷拍在线| bt在线麻豆视频| 日韩欧美资源站| 久久婷婷一区二区| 成人免费视频视频| jizzjizz国产精品喷水| 蜜桃一区二区三区| 国产精品久久久久福利| 成人午夜电影在线观看| 欧美日韩精品三区| www.97视频| 国产成人在线看| 男女超爽视频免费播放| 亚洲激情播播| 国产精品直播网红| 成人在线app| 精品国产精品网麻豆系列| 日本中文字幕网| 26uuu另类欧美亚洲曰本| 免费无码av片在线观看| 精品久久国产| 亚洲一区二区三区xxx视频| 伊人222成人综合网| 亚洲国产99精品国自产| 中文字幕xxxx| 亚洲免费色视频| 国产二级一片内射视频播放| 视频一区二区国产| 在线视频不卡一区二区三区| 亚洲一区二区三区中文字幕在线观看 | 手机在线免费看毛片| 成人精品国产一区二区4080| 国产av无码专区亚洲精品| 日韩欧美高清| 狠狠色综合网站久久久久久久| 日韩成人影音| 九九九热精品免费视频观看网站| 亚洲色图21p| 91精品国产综合久久小美女| 香蕉视频一区二区| 国产精品无人区| 麻豆精品国产传媒av| 日韩成人午夜精品| 日韩一区二区高清视频| 青青草国产免费一区二区下载| 亚洲a在线观看| 激情都市亚洲| 欧美另类极品videosbestfree| 可以在线观看的av| 日韩欧美国产精品一区| 国产91精品一区| 亚洲乱码国产乱码精品精的特点| 波多野结衣 在线| 国产99久久久国产精品免费看| 91黄色小网站| 国产精品xvideos88| 新呦u视频一区二区| 久久精品国产亚洲blacked| 国产自产女人91一区在线观看| а√天堂8资源中文在线| 久久中文久久字幕| 成人h小游戏| 日韩电影免费观看在线观看| 成人福利小视频| 欧美日韩国产小视频在线观看| 久久午夜免费视频| 夜夜精品浪潮av一区二区三区| 国产视频精品免费| 国产三级欧美三级日产三级99| 美女伦理水蜜桃4| 国产一区二区在线观看视频| 日本www.色| 母乳一区在线观看| 成年女人18级毛片毛片免费| 欧美永久精品| 一区二区精品在线观看| 国内精品伊人久久久| 精品国产乱码一区二区三区四区| 国产精品久久久久久久久久辛辛| 国产精品网站大全| 日本不卡一二三| 国产91精品久久久久久| 国产777精品精品热热热一区二区| 美女国内精品自产拍在线播放| 97人人在线| 最近2019好看的中文字幕免费 | 美日韩丰满少妇在线观看| 午夜视频在线观看免费视频| 亚洲欧美日韩国产中文专区| 天堂网av2014| 亚洲第一视频网站| 欧美熟妇另类久久久久久不卡| 欧美v日韩v国产v| 亚洲AV午夜精品| 日韩欧美色电影| 亚洲黄色小说网| 亚洲成人中文字幕| 性xxxx视频| 日韩麻豆第一页| 狠狠v欧美ⅴ日韩v亚洲v大胸| 亚洲欧美在线一区二区| 国产日产精品久久久久久婷婷| 国产香蕉一区二区三区在线视频 | 91精品国产高清91久久久久久| 国产乱淫av一区二区三区| 性生活一级大片| 99久久久久成人国产免费| 亚洲国产精品久久久久秋霞影院 | 一区二区三区国产好的精华液| 激情综合网av| 色黄视频免费看| 国产福利视频一区二区三区| 国产成人精品一区二区三区在线观看| 国产mv日韩mv欧美| 李丽珍裸体午夜理伦片| 91免费版在线| 九九热免费在线| 亚洲欧美日韩国产综合在线| 免费在线看黄网址| 精品人伦一区二区三区蜜桃网站| 中文字幕精品无码一区二区| 欧美日韩免费观看一区三区| 国产肥老妇视频| 日韩精品在线影院| 在线观看精品一区二区三区| 成人444kkkk在线观看| av中文字幕在线观看第一页| 日韩av快播网址| 四虎在线精品| 国产女主播一区二区三区| 国产一区二区三区四区二区| 综合视频在线观看| 亚洲激情av| 亚洲xxxx2d动漫1| 国产精品白丝jk黑袜喷水| 国产伦精品一区二区三区精品| 久久久91精品国产一区二区精品| 91社区视频在线观看| 一二三四社区欧美黄| 69国产精品视频免费观看| 欧美剧在线免费观看网站| 蜜臀av午夜精品| 一夜七次郎国产精品亚洲| 羞羞的视频在线观看| 国产成人精品一区二区| 日韩视频一二区| 日本亚洲欧洲精品| 国产精品分类| 男人插女人下面免费视频| 国产成人8x视频一区二区| 四季av中文字幕| 婷婷久久综合九色国产成人 | 亚洲www.| www久久99| 大片网站久久| 日韩激情免费视频| 国产一区二区不卡在线| 人人人妻人人澡人人爽欧美一区| 亚洲一区精品在线| 中文字幕欧美人妻精品一区蜜臀| 欧美精品一区二区三区一线天视频 | 黄色资源网久久资源365| 97超碰在线资源| 亚洲成人中文在线| www.久久成人| 俺去啦;欧美日韩| 欧美成a人片在线观看久| 精品国产乱码久久久久久丨区2区| 亚洲精品一区二区妖精| 国语对白做受xxxxx在线中国| 国产成人精品一区二区三区网站观看| 国产精品综合激情| 在线看国产一区| 清纯唯美亚洲色图| 97免费中文视频在线观看| 亚洲va欧美va人人爽成人影院| 亚洲精品中字| 丝袜诱惑亚洲看片| 美国黄色a级片| 黑人巨大精品欧美一区二区| 亚洲精选一区二区三区| 欧美成人一区在线| 懂色av色香蕉一区二区蜜桃| 一区二区三区观看| 免费成人在线网站| 免费看黄色av| 日本韩国欧美三级| 免费在线视频你懂得| 欧美怡春院一区二区三区| 欧美天堂影院| 波多野结衣家庭教师在线| 99久久免费国产| 日本道在线观看| 亚洲欧美国产日韩天堂区| sis001欧美| 神马影院午夜我不卡影院| 日韩成人午夜精品| 日日操免费视频| 欧美军同video69gay| 国产高清一区二区三区视频| 亚洲综合中文字幕在线| 国产综合精品| 亚洲最大免费视频| 欧美色视频日本版| 国产永久免费高清在线观看 | 午夜精品影视国产一区在线麻豆| 免费看又黄又无码的网站| wwww国产精品欧美| 亚洲s码欧洲m码国产av| 亚洲天堂久久av| a成人v在线| 喜爱夜蒲2在线| 成人av在线观| 中文字幕在线播| 日韩中文字幕不卡视频| 国产一区二区三区黄网站| 高清无码一区二区在线观看吞精| 成人教育av在线| 中文字幕免费在线观看视频| 中文字幕亚洲国产| 日本在线一区二区三区| 妞干网在线视频观看| 久久蜜臀精品av| 一级aaaa毛片| 久久久久久69| 国产99亚洲| 国产高清999| 欧美日韩国产在线播放| 成人动漫在线免费观看| 亚洲一区二区在线播放| 亚洲三级影院| 日本高清黄色片| 亚洲精品一区二区三区香蕉| 日韩精品一区二区三区| 蜜臀av.com| 久久日韩精品一区二区五区| 国产精品久久久久精| 久久免费国产视频| 日韩精品四区| 久草视频福利在线| 欧美视频完全免费看| 青草在线视频| 亚洲精品中文字幕在线| 99视频在线观看一区三区| 亚洲天堂aaa| 2021国产精品视频| 久久精品免费一区二区三区| 搡老熟女老女人一区二区| 日韩一区二区精品在线观看| 日韩av大片站长工具| 日韩网站在线免费观看| 国产精品久久午夜| 欧美在线一卡|