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

為自己做一個簡單記賬簿

數據庫
當每個月收到信用卡賬單時,筆者總會又驚又惑。為什么上個月又花了那么多錢?為了有效的管理自己的資金動態,筆者利用SQLite為自己做了一個簡單記賬簿。

每個月收到信用卡賬單時,我總會又驚又惑。上個月怎么又花了那么多錢?看著每一筆出帳流水,猛抓頭皮卻怎么也記不起來這錢是用在了哪兒。痛定思痛,采取行動,我要記賬。作為一個信奉技術能改變世界的IT人,我理所當然的在網上搜索各種電子記賬本。在線的記賬功能不敢用(怕被騷擾),一些單機記賬軟件提供的功能又不是我想要的。

與此同時,最近空下來的時候,我在看SQLite方面的資料。SQLite的簡潔、小巧讓我有些愛不釋手。就此決定給自己做個記賬本,用SQLite作為本地數據引擎。

功能概述

我需要的記賬功能比較簡單:

***、記錄每一筆消費,并可以添加需要的標簽。當我查看明細時,能知道自己買了啥。

第二、對我來說,消費只需要分成兩種:‘生活必需消費’和‘享受消費’。每周、每月可以看到這兩種消費所占的比例、金額。

第三、能查看自己近6個月的消費走勢。

根據這3點需求,我為自己度身定制了這款記賬工具。

圖1是記賬本的啟動框。

程序將啟動一個工作線程來檢查記賬程序路徑下是否已存在賬本數據庫,若沒有則創建該數據庫和所需的表結構。同時定時器將輪詢檢查結果。

 (圖1)

圖2是記賬本的主界面。

很多其他記賬軟件把消費分成餐飲,交通,買衣服……或者更細。一筆賬到底歸為哪一類要想個半天,同時出的圖表復雜但又意義不大。

為自己做的賬本只有兩種消費類別,對應兩個大按鈕,點擊即可進入記賬界面。這兩種消費所占的比例和總額是我每月的關注點。

主界面的最下方還有3個按鈕,分別對應‘返回主界面’、‘退出程序’、‘查看報表’。在任何其它界面中,這三個按鈕的圖案、功能都保持一致。

(圖2)

點擊主界面上的綠色或紅色按鈕就會進入到記賬界面。如圖3所示

標題、圖標、主色調區分了不同的消費。該界面的設計也是希望最簡化,省去了消費時間選擇框,默認為當前記錄時間。

該界面的一個亮點是‘標簽選擇框’??蛑械臉撕炇莿討B生成的。系統會取近一個月時間,使用最頻繁的10個標簽來顯示。(代碼分析部分還會展開)

這里記錄的標簽,會出現在后面的明細報表中,這是我用來對賬的。

(圖3)

***來看一下這個小工具能生成的圖表與報表,如圖4所示

該工具能輸出3種報表,分別是消費比例圖,近6月消費走勢圖,消費對賬明細。對于圖表,鼠標至于色塊上方時將顯示消費金額。

這3個報表也本著減少操作,降低復雜度,簡潔好用為宗旨,所以只提供了最必要的功能。

(圖4)

程序結構

看了工具的界面設計后,讓我們來看一下程序結構,如圖5所示

(圖5)

整個Solution最主要由3個Project組成。

1. DataAccessLayer.SQLite包裝了對SQLite訪問的方法

2. ForSingle 主程序

3. UserControls 自定義用戶控件

需要說明的是:

這個工具所有界面最下方的3個按鈕保持統一,所以我在UserControls中畫了一個BaseForm(圖中橙色框標出),讓主界面繼承自BaseForm。

其他的每一個界面都做成UserControl,在主程序中控制它們的創建與顯示。如圖中綠色框標出。

SQLite對于本地應用是個不錯的選擇,我使用的是一個包裝成ADO.NET接口的SQLite引擎。以下鏈接供參考:

我使用的類庫:http://sqlite.phxsoftware.com/

SQLite官方網站:http://www.sqlite.org/

#p#

代碼分析

1. 程序啟動

當程序啟動時,需要做一下檢查和初始化工作。我把這些工作都放在啟動框中完成。

Program.cs:

  1. [STAThread]    
  2.  
  3. static void Main()    
  4.  
  5. {    
  6.  
  7.     Application.EnableVisualStyles();    
  8.  
  9.     Application.SetCompatibleTextRenderingDefault(false);    
  10.  
  11.     if (Splash.Instance.ShowDialog() == DialogResult.OK)    
  12.  
  13.      {    
  14.  
  15.          Application.Run(new MainFrame());    
  16.  
  17.      }    
  18.  
  19. }   

以上代碼中的Splash就是啟動對話框。只有當返回DialogResult.OK時,才會啟動主程序。

Splash對話框是一個簡單單例模式的實現。

Splash.cs:

  1. private static Splash _instance;    
  2.  
  3. public static Splash Instance    
  4.  
  5. {    
  6.  
  7.     get   
  8.  
  9.     {    
  10.  
  11.         if (_instance == null)    
  12.  
  13.         {    
  14.  
  15.             _instance = new Splash();    
  16.  
  17.         }    
  18.  
  19.         return _instance;    
  20.  
  21.     }    
  22.  
  23. }   

在Splash的構造過程中,會啟動一個定時器,再會啟動一個工作線程運行初始化程序。

Splash.cs:

  1. private Splash()    
  2.  
  3. {    
  4.  
  5.     InitializeComponent();    
  6.  
  7.     SetDialogInfo();    
  8.  
  9.     Ticker.Start();    
  10.  
  11.     Worker.RunWorkerAsync();    
  12.  
  13. }  

工作線程與定時器之間由標志DBState聯系起來的,工作線程置標志,定時器輪詢標志。

Splash.cs:

  1. private Timer _ticker;    
  2. public Timer Ticker    
  3. {    
  4.     get   
  5.     {    
  6.         if (_ticker == null)    
  7.         {    
  8.             _ticker = new Timer(this.components);    
  9.             _ticker.Interval = 2000;    
  10.             _ticker.Tick += new System.EventHandler(_ticker_Tick);    
  11.         }    
  12.         return _ticker;    
  13.     }    
  14. }    
  15. private enum DBStateEnum    
  16. {    
  17.     Undefined,    
  18.     Ready,    
  19.     Failed    
  20. }    
  21. private DBStateEnum _dbState = DBStateEnum.Undefined;    
  22. private DBStateEnum DBState    
  23. {    
  24.     get { return _dbState; }    
  25.     set { _dbState = value; }    
  26. }    
  27. private void _ticker_Tick(object sender, System.EventArgs e)    
  28. {    
  29.     if (DBState == DBStateEnum.Ready)    
  30.     {    
  31.         this.DialogResult = DialogResult.OK;    
  32.         this.Close();    
  33.     }    
  34.     else if (DBState == DBStateEnum.Failed)    
  35.     {    
  36.         if (string.IsNullOrEmpty(this.lblMessage.Text))    
  37.         {    
  38.             this.lblMessage.Text = ErrorMessage;    
  39.         }    
  40.         else   
  41.         {    
  42.             this.DialogResult = DialogResult.Cancel;    
  43.             this.Close();    
  44.         }    
  45.     }    
  46. }  

2. 標簽選擇框的繪制

圖3下半部分中有一系列動態標簽,這些標簽的顯示邏輯為:

從本地SQLite數據庫中,查詢出指定消費類別(‘生活必需’或‘奢侈享受’)近一個月中不重復的標簽,按出現頻率倒序排列,并取出前10個

FeeRecorderControl.cs:

  1. private static readonly string getRecentMonthTop10SubCategorySql =    
  2.              @"select    
  3.                SubCategory    
  4.              from    
  5.                AccountRecord    
  6.              where    
  7.                Category = '{0}'    
  8.                and    
  9.                ConsumeDate >= date('now''localtime''-1 month')    
  10.                and    
  11.                ConsumeDate <= datetime('now''localtime')    
  12.                and    
  13.                ifnull(SubCategory, '') <> ''    
  14.              group by    
  15.                SubCategory    
  16.              order by    
  17.                count(*) desc    
  18.              limit 0,10;";   

界面上的繪制標簽區域其實是一個Panel,每一個標簽是一個Label。

每次添加Label時,需檢查當前將繪制的Label是否會超出Panel的邊界,并相應的進行換行處理或退出循環。

FeeRecorderControl.cs:

  1. private void InitalizeSubCategoryPanel(string strCategory, Color backColor)    
  2.         {    
  3.             using (SQLiteConnection conn = new SQLiteConnection(SqliteConnString))    
  4.             {    
  5.                 conn.Open();    
  6.                 using (SQLiteCommand cmd = new SQLiteCommand(string.Format(getRecentMonthTop10SubCategorySql, strCategory), conn))    
  7.                 {    
  8.                     using (SQLiteDataReader reader = cmd.ExecuteReader())    
  9.                     {    
  10.                         Point subCategoryLocation = new Point(0, 0);    
  11.                         SubCategoryList.Clear();    
  12.                         plSubCategory.Controls.Clear();    
  13.                         while (reader.Read())    
  14.                         {    
  15.                             string strSubCategory = reader["SubCategory"].ToString();    
  16.                             Label lblSubCategory = new Label();    
  17.                             lblSubCategory.Text = strSubCategory;    
  18.                             lblSubCategory.Font = new Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold,    
  19.                                                            System.Drawing.GraphicsUnit.Point, ((byte) (0)));    
  20.                             lblSubCategory.Width = lblSubCategory.Text.Length*25 + 10;    
  21.                             lblSubCategory.Height = 35;    
  22.                             lblSubCategory.TextAlign = ContentAlignment.MiddleCenter;    
  23.                             lblSubCategory.BackColor = backColor;    
  24.                             lblSubCategory.Click += new EventHandler(lblSubCategory_Click);    
  25.                             if (subCategoryLocation.X + lblSubCategory.Width <= plSubCategory.Width    
  26.                                 && subCategoryLocation.Y + lblSubCategory.Height <= plSubCategory.Height)    
  27.                             {    
  28.                                 lblSubCategory.Location = subCategoryLocation;    
  29.                             }    
  30.                             else if (subCategoryLocation.X + lblSubCategory.Width > plSubCategory.Width     
  31.                                 && subCategoryLocation.Y + lblSubCategory.Height + 5 + lblSubCategory.Height <= plSubCategory.Height)    
  32.                             {    
  33.                                 subCategoryLocation.X = 0;    
  34.                                 subCategoryLocation.Y = subCategoryLocation.Y + lblSubCategory.Height + 5;    
  35.                                 lblSubCategory.Location = subCategoryLocation;    
  36.                             }    
  37.                             else   
  38.                             {    
  39.                                 break;    
  40.                             }    
  41.                             subCategoryLocation.X = subCategoryLocation.X + lblSubCategory.Width + 5;    
  42.                             SubCategoryList.Add(lblSubCategory);    
  43.                         }    
  44.                         plSubCategory.Controls.AddRange(SubCategoryList.ToArray());    
  45.                     }    
  46.                 }    
  47.                 conn.Close();    
  48.             }    
  49.         }  

總結與思考

1. 我對WinForm的開發遠沒有對數據庫開發熟悉,大家若發現紕漏之處,請溫柔指出。

2. 最近用戶體驗是一個熱門詞匯,做軟件除了考慮技術問題之外,更要站在用戶的角度去考慮他們的使用習慣。

3. 我自己非常想把這個記賬工具做成手機版的,但對于移動開發知之甚少,大家可以進行嘗試與討論,歡迎和我郵件交流。

原文鏈接:http://www.cnblogs.com/DBFocus/archive/2011/02/27/1966203.html

【編輯推薦】

  1. SQLite做為本地緩存應注意的幾大方面
  2. C#中數據本地存儲方案之SQLite
  3. 淺析SQLite數據庫開發常用管理工具
  4. Widget開發心得 解決跳轉頁面和SQLite類問題

 

責任編輯:艾婧 來源: 博客園
相關推薦

2015-07-03 11:27:30

程序員自己神器

2020-07-20 10:00:52

Python翻譯工具命令行

2021-12-30 06:59:27

視頻通話網頁

2013-04-18 09:33:57

Windows PhoWindows Pho

2022-12-22 19:22:55

應用開發鴻蒙

2012-12-17 12:58:18

WebjQuery重構

2023-05-27 21:13:34

FlaskURL裝飾器

2017-06-30 15:18:24

對賬系統互聯網

2021-11-26 08:33:51

React組件前端

2010-08-11 13:39:16

Flex3.0Flv播放器

2016-11-23 18:13:44

javascriptrxjsreactivex

2018-01-04 16:04:35

圓環放大動畫

2021-12-17 10:06:42

鴻蒙HarmonyOS應用

2021-12-01 07:02:55

Python 記錄器按鍵

2019-04-22 10:25:52

程序員技術職場

2014-04-29 10:50:16

池建強

2018-09-17 15:12:25

人工智能神經網絡編程語言

2023-12-16 13:21:00

Python元類ORM

2021-05-26 07:53:58

Linux運維Linux系統

2022-10-14 17:48:55

D2C代碼vue
點贊
收藏

51CTO技術棧公眾號

在线黄色的网站| 欧美偷拍视频| 亚洲茄子视频| 一区二区日韩精品| 性高潮久久久久久| 日本综合字幕| 一区二区三区在线看| 久久久神马电影| 国产视频第一页| 欧美一级专区| 九九精品在线播放| 嘿嘿视频在线观看| 久久综合另类图片小说| 欧美丝袜丝nylons| 欧美一级在线看| 国产在线二区| 中文字幕av一区二区三区高| 国产在线资源一区| 国内老熟妇对白xxxxhd| 热久久久久久久| 97久久精品视频| 午夜免费激情视频| 波多野结衣的一区二区三区| 亚洲精品国精品久久99热一| 亚洲理论中文字幕| 国产精品诱惑| 在线视频国内一区二区| 三上悠亚久久精品| 性xxxxfjsxxxxx欧美| 国产精品第一页第二页第三页| 国产美女精品久久久| 国产精品天天操| 蜜桃免费网站一区二区三区| 欧美在线一级va免费观看| 欧美另类视频在线观看| 天天av综合| 中文字幕亚洲一区二区三区五十路| 久久亚洲AV成人无码国产野外| 1204国产成人精品视频| 91精品国产91热久久久做人人| 99视频在线免费| 日本免费久久| 色一情一乱一乱一91av| 国产精品秘入口18禁麻豆免会员| a级大胆欧美人体大胆666| 尤物av一区二区| 九九久久九九久久| av在线看片| 亚洲精品视频观看| www.国产二区| 黄色成人在线网| 亚洲国产欧美一区二区三区丁香婷| 穿情趣内衣被c到高潮视频| 蜜桃视频网站在线| 亚洲欧美二区三区| 亚洲小说欧美另类激情| av大片在线| 亚洲在线成人精品| 可以看毛片的网址| 黄视频免费在线看| 日韩欧美在线字幕| 999精品视频在线| www.久久.com| 欧美一区日本一区韩国一区| 在线观看你懂的视频| 99ri日韩精品视频| 日韩电影中文字幕| 一区二区三区伦理片| 日韩久久综合| 欧美猛少妇色xxxxx| 国产亚洲欧美精品久久久久久| 亚洲黄色大片| 国产成人激情小视频| 中文字幕免费播放| 国产乱子伦视频一区二区三区 | 久久久久久久久久免费视频| 国产亚洲一区在线| 国产精品黄色av| 国产一区二区网站| 成人丝袜18视频在线观看| 久久一区二区三区av| 日本在线免费播放| 亚洲自拍偷拍九九九| 69堂免费视频| 成人一区视频| 亚洲高清在线观看| 国产精品无码无卡无需播放器| 亚洲国产一区二区三区在线播放| 国内精品久久久| 中文字幕在线日亚洲9| 国产激情视频一区二区三区欧美 | 91高清视频在线| 中文字幕第66页| 天堂一区二区三区四区| www.国产一区| 中文字幕亚洲高清| 精品在线播放午夜| 久久久福利视频| 日本免费视频在线观看| 激情懂色av一区av二区av| 五月天激情视频在线观看| 成人福利免费在线观看| 日韩在线视频观看正片免费网站| 久久婷婷国产麻豆91| 日本亚洲三级在线| 国产精品免费一区二区三区| 香蕉视频免费在线播放| 黑人欧美xxxx| 极品人妻一区二区| 日韩在线看片| 91精品国产亚洲| 国产一区二区三区黄片| 久久蜜桃一区二区| 野外做受又硬又粗又大视频√| 99久久精品一区二区成人| 亚洲福利在线观看| 18岁成人毛片| 久久精品国产免费看久久精品| 免费精品视频一区| 国产偷倩在线播放| 日韩一二在线观看| 午夜黄色福利视频| 日韩综合小视频| 精品无码久久久久久久动漫| 婷婷av在线| 制服丝袜亚洲播放| 欧美成人久久久免费播放| 国产精品婷婷| 精品欧美一区二区久久久伦| 成全电影大全在线观看| 日韩欧美中文字幕一区| 91社区视频在线观看| 久久亚洲一区| 精品一区二区国产| 天堂在线中文网官网| 欧美精品一区二区三区蜜桃| 久久久久久蜜桃| 国产馆精品极品| 亚洲小视频在线播放| 免费观看亚洲视频大全| 久久亚洲综合国产精品99麻豆精品福利| 久久精品国产亚洲av麻豆蜜芽| 久久欧美中文字幕| 国产麻花豆剧传媒精品mv在线| 日本中文字幕在线一区| 91精品国产91久久久久久久久| 黑人乱码一区二区三区av| 亚洲自拍偷拍欧美| 天天插天天射天天干| 日韩午夜av| 久久亚洲精品欧美| 欧美男女交配| 最近2019中文字幕大全第二页 | 日韩精品一区二区三区视频在线观看 | 伦理一区二区| 2020欧美日韩在线视频| 日韩大片b站免费观看直播| 色香蕉成人二区免费| 熟女少妇内射日韩亚洲| 日本vs亚洲vs韩国一区三区| 亚洲一区三区视频在线观看| 香蕉久久久久久| 欧美美女15p| 天堂中文在线观看视频| 色狠狠一区二区三区香蕉| 精品人妻中文无码av在线| 久久综合综合久久综合| 国产精品免费看久久久无码| 国产调教精品| 国产成人精品在线| 久久久久久久久免费视频| 日韩视频免费观看高清完整版 | 国产女教师bbwbbwbbw| 国产成人夜色高潮福利影视| 日本久久91av| 欧美激情视频在线播放| 精品国产一区二区亚洲人成毛片| 国语对白永久免费| 国产精品理论片| 性农村xxxxx小树林| 日韩精品一二三四| 日本精品免费视频| 香蕉久久精品日日躁夜夜躁| 国产精品永久免费| bbw在线视频| 中文字幕在线看视频国产欧美在线看完整| 国产一区二区三区四区视频| 亚洲国产另类av| 国产三级黄色片| 国产69精品久久久久毛片| 亚洲一区二区蜜桃| 黄色免费成人| 亚洲看片网站| 欧亚精品一区| 成人免费视频a| 日韩脚交footjobhd| 久久影院中文字幕| 青青色在线视频| 日韩欧美成人午夜| 中文无码av一区二区三区| 亚洲影视在线观看| 日本成人精品视频| 久久精品欧美一区二区三区不卡| 天天爽夜夜爽视频| 日本视频一区二区三区| 国产 日韩 欧美在线| 日韩av在线播放网址| 精品国产乱码久久久久久郑州公司| 91精品一久久香蕉国产线看观看 | 成人1区2区| 2019中文字幕在线| free性欧美| 久久99青青精品免费观看| 999国产在线视频| 日韩成人小视频| 亚洲经典一区二区三区| 884aa四虎影成人精品一区| 亚洲男人的天堂在线视频| 一区二区三区在线观看动漫| 亚洲熟女毛茸茸| 中文字幕av一区二区三区| 男生草女生视频| 91在线看国产| 欧美图片自拍偷拍| 国产精品自拍毛片| 手机在线国产视频| 麻豆中文一区二区| 性欧美videossex精品| 久久精品五月| 国内外成人免费激情视频| 伊人久久亚洲热| 福利在线一区二区| 激情婷婷亚洲| 久久国产精品网| 在线日韩av| 可以在线看的av网站| 激情婷婷久久| 欧美日韩一道本| 国产欧美一区二区色老头 | 高清视频一区二区| 欧美69精品久久久久久不卡| 国产成人精品一区二| 欧美一级片在线免费观看| 国产美女av一区二区三区| 日本高清免费在线视频| 国产成人综合亚洲91猫咪| av在线免费观看不卡| 高清在线观看日韩| 天堂www中文在线资源| www.爱久久.com| 日韩一级视频在线观看| 国产目拍亚洲精品99久久精品| 无码少妇一区二区| 国产精品久久影院| 美国黄色小视频| 亚洲一区二区av在线| 国产成人无码精品| 色偷偷成人一区二区三区91| 少妇又紧又色又爽又刺激视频| 欧美性淫爽ww久久久久无| 亚洲天堂网视频| 日韩一级黄色片| 亚洲av成人精品日韩在线播放| 日韩久久精品电影| 川上优的av在线一区二区| 俺去了亚洲欧美日韩| 国产精品剧情一区二区在线观看 | 97超碰免费观看| 激情久久婷婷| 人人爽人人av| 韩日av一区二区| 久久久久久久久久影视| 久久亚洲影视婷婷| 中文字幕无码日韩专区免费| 亚洲午夜久久久| 国产又粗又猛又爽又| 欧美日本一区二区三区| 懂色av成人一区二区三区| 日韩精品高清视频| 免费观看久久久久| 亚洲91精品在线观看| 欧美风情在线视频| 好吊色欧美一区二区三区四区 | 日韩视频精品在线| 金瓶狂野欧美性猛交xxxx| 人人爽久久涩噜噜噜网站| 亚洲爽爆av| 久久久久久久久四区三区| 93在线视频精品免费观看| 日韩人妻无码精品久久久不卡| 久久精品一区二区三区中文字幕| 欧美体内she精高潮| 久久综合九色综合久久久精品综合 | 亚洲男人的天堂一区二区| 99精品视频99| 这里只有精品免费| 欧美男男同志| 欧美韩国理论所午夜片917电影| 韩国女主播一区二区| 国产精品久久久一区二区三区| 国产一区99| 欧美日韩成人免费视频| 国产自产v一区二区三区c| 欧美特级黄色录像| 性久久久久久久久久久久| 国产情侣在线播放| 亚洲视频在线视频| h片在线观看视频免费免费| 成人av番号网| 精品一二三区| 无码人妻精品一区二区三区在线 | 69久久夜色精品国产69蝌蚪网| 污污视频在线免费看| 久久99国产精品自在自在app| 国精产品一区一区三区四川| 精品视频第一区| 精久久久久久| 肉丝美足丝袜一区二区三区四| 国产精品无人区| 久久永久免费视频| 亚洲美女精品久久| 爱啪啪综合导航| 痴汉一区二区三区| 欧美国产日本| 九一精品久久久| 中文字幕亚洲精品在线观看| 91丨九色丨海角社区| 精品调教chinesegay| 成av人片在线观看www| 国产精品一区视频网站| 欧美日韩国产在线一区| 久久人人爽人人片| 亚洲欧美一区二区视频| 91亚洲视频在线观看| 中文字幕日韩精品在线观看| 日韩欧美一区二区三区在线观看 | 日本亚洲视频在线| 调教驯服丰满美艳麻麻在线视频| 色婷婷综合久久| 狠狠v欧美ⅴ日韩v亚洲v大胸| 日本久久久久久久| 国产精品片aa在线观看| 欧美精品无码一区二区三区| 国产欧美一区二区三区鸳鸯浴| 波多野结衣在线观看一区| 国产午夜精品免费一区二区三区 | 99re6在线| 欧美.www| 中文字幕人妻一区二区三区| 亚洲高清三级视频| 香蕉国产在线视频| 欧美在线观看日本一区| 国产成人精品999在线观看| 免费观看成人网| 国产精品麻豆欧美日韩ww| 国产乱淫a∨片免费观看| 欧美成人激情在线| 精品网站aaa| 免费看a级黄色片| 中文字幕在线一区免费| 国产激情视频在线播放| 91精品国产乱码久久久久久久久| 宅男在线一区| 欧美国产日韩另类 | 黑森林福利视频导航| 中文字幕乱码久久午夜不卡| 国产精品欧美激情在线| 欧美黄色小视频| 亚洲美女15p| 亚洲精品在线视频播放| 亚洲网友自拍偷拍| 国产在线一在线二| 成人免费视频网| 国产亚洲在线观看| 国产又粗又长又黄的视频| 日韩无一区二区| 性高爱久久久久久久久| 精品少妇人妻av一区二区| bt7086福利一区国产| 久久这里只有精品9| 久久久女女女女999久久| 国产一区网站| 日本人妻一区二区三区| 在线观看中文字幕不卡| 亚洲第一图区| 热re99久久精品国99热蜜月| 国产精品一区二区无线| 黄色av一级片| 精品自在线视频| 欧美精品色图| 亚洲美女在线播放| 欧美日韩视频在线一区二区| 国产免费拔擦拔擦8x高清在线人 | 欧美天天视频| 五月天精品视频| 精品少妇一区二区三区视频免付费 | 在线播放一区| 91狠狠综合久久久| 精品视频久久久久久久| 久久伦理中文字幕|