亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于C#的Excel數(shù)據(jù)批量導(dǎo)入SqlServer的方法研究與實(shí)現(xiàn)

        2014-12-13 20:21:33周虎
        軟件工程 2014年12期
        關(guān)鍵詞:編程

        周虎

        摘? 要:批量數(shù)據(jù)導(dǎo)入在實(shí)際工作中提高了數(shù)據(jù)處理的效率,保證了數(shù)據(jù)的完整性。本文以某地育齡婦女基本信息為例,詳細(xì)介紹了Excel數(shù)據(jù)批量導(dǎo)入SqlServer的設(shè)計(jì)思路與實(shí)現(xiàn)方法。

        關(guān)鍵詞:Excel;SqlServer;批量數(shù)據(jù)導(dǎo)入;NPOI;C#編程

        中圖分類號(hào):TP311.11?????????? 文獻(xiàn)標(biāo)識(shí)碼:A

        1?? 引言(Introduction)

        Excel是辦公中常用的電子表格處理工具,SqlServer是目前流行的數(shù)據(jù)庫(kù)管理系統(tǒng),均在信息系統(tǒng)中被廣泛使用[1]。在某地?cái)?shù)字化計(jì)生服務(wù)管理系統(tǒng)中需要從育齡婦女基本信息管理系統(tǒng)中導(dǎo)入育齡婦女的基本信息,而育齡婦女基本信息管理系統(tǒng)中只能將當(dāng)前單位中所有的育齡婦女信息導(dǎo)出到Excel文件中,然后從Excel文件中將育齡婦女信息導(dǎo)入到SqlServer數(shù)據(jù)庫(kù)中。在進(jìn)行數(shù)據(jù)導(dǎo)入時(shí),每次只需將增量數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù),同時(shí)Excel中一條記錄要寫入到數(shù)據(jù)庫(kù)多張表中。目前Excel導(dǎo)入數(shù)據(jù)庫(kù)主要包括以下幾種方法:

        (1)將Excel轉(zhuǎn)化為XML或者CSV文件,然后導(dǎo)入數(shù)據(jù)庫(kù)。

        (2)使用Office提供的Com組件技術(shù)。

        (3)使用第三方組件,如NPOI或OLEDB。

        其中第一種方法和第二種方法操作復(fù)雜或者運(yùn)行緩慢,在實(shí)際應(yīng)用中效果均不是很理想[2],并且本系統(tǒng)在對(duì)Excel數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)時(shí)需要對(duì)需要對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步加工和處理,所以本文主要借助第三方組件NPOI的方式來(lái)實(shí)現(xiàn)Excel數(shù)據(jù)的批量導(dǎo)入。

        2? Excel批量數(shù)據(jù)導(dǎo)入技術(shù)分析(Excel import bulk

        data technical analysis)

        在本項(xiàng)目中,需要將育齡婦女基本信息Excel文件內(nèi)容讀取到內(nèi)存中,然后在內(nèi)存中和數(shù)據(jù)庫(kù)中的育齡婦女信息進(jìn)行比對(duì),將增量數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),具體流程如圖1所示。

        圖1 NPOI讀取Excel數(shù)據(jù)到數(shù)據(jù)庫(kù)

        Fig.1 NPOI read excel data to database

        在圖1操作流程中,關(guān)鍵技術(shù)包括使用NPOI讀取Excel數(shù)據(jù)到內(nèi)存中的DataTable和從內(nèi)存中將增量數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)。

        2.1?? NPOI

        NPOI是一個(gè)開(kāi)源的基于.Net的讀寫Excel、Word等微軟OLE2組件文檔的項(xiàng)目,使用NPOI你就可以在沒(méi)有安裝Office或者相應(yīng)環(huán)境的機(jī)器上對(duì)Word/Excel文檔進(jìn)行讀寫[3]。NPOI是一個(gè)免費(fèi)的開(kāi)源組件,包含了大部分的Excel功能,同時(shí)支持文件的導(dǎo)入與導(dǎo)出。

        在本項(xiàng)目中使用NPOI將Excel表中的數(shù)據(jù)讀取到內(nèi)存中的Datatable中,同時(shí)將育齡婦女的編號(hào)存入集合中,便于和數(shù)據(jù)庫(kù)中的育齡婦女信息進(jìn)行比對(duì)。

        2.2?? 增量數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)

        在本項(xiàng)目中,由于每次需要導(dǎo)入的育齡婦女基本信息都是包含所有的育齡婦女基本信息,為了進(jìn)一步提高導(dǎo)入數(shù)據(jù)的效率,采用每次導(dǎo)入增量數(shù)據(jù)的方法,這里需要將Excel文件中的育齡婦女信息和數(shù)據(jù)庫(kù)中的育齡婦女信息進(jìn)行集合運(yùn)算,將數(shù)據(jù)庫(kù)中不包含的但Excel文件中包含的育齡婦女信息先計(jì)算出來(lái),然后對(duì)增量數(shù)據(jù)進(jìn)行批量導(dǎo)入數(shù)據(jù)庫(kù)。具體流程如圖2所示。

        圖2 增量數(shù)據(jù)導(dǎo)入

        Fig.2 Incremental data import

        在計(jì)算出增量數(shù)據(jù)后,Excle文件中一條記錄需要同時(shí)保存到數(shù)據(jù)庫(kù)中多個(gè)表中,同時(shí)需要根據(jù)數(shù)據(jù)庫(kù)中數(shù)據(jù)字典中相應(yīng)的字段進(jìn)行數(shù)據(jù)處理。具體操作步驟如下:首先將需要用到數(shù)據(jù)字典的字段內(nèi)容讀取到內(nèi)存中,如育齡婦女的現(xiàn)居地編號(hào)和婚姻狀況等;其次循環(huán)遍歷增量數(shù)據(jù),同時(shí)生成相應(yīng)的添加數(shù)據(jù)的SQL語(yǔ)句;最后使用SQL事務(wù)操作,實(shí)現(xiàn)批量數(shù)據(jù)的導(dǎo)入功能。

        3? Excel批量數(shù)據(jù)導(dǎo)入的實(shí)現(xiàn)(Excel data import

        implementation)

        實(shí)現(xiàn)Excel批量數(shù)據(jù)導(dǎo)入,主要分為Excel數(shù)據(jù)讀取,數(shù)據(jù)處理和數(shù)據(jù)導(dǎo)入。

        3.1?? Excel數(shù)據(jù)讀取的實(shí)現(xiàn)

        實(shí)現(xiàn)Excel數(shù)據(jù)的讀取功能,首先根據(jù)Excel表中的字段生成內(nèi)存中DataTable內(nèi)存表對(duì)象,如圖3所示。

        圖3 Excel文件表頭

        Fig.3 Excel file header

        根據(jù)這些表頭字段,在內(nèi)存中生成DataTable的字段信息,并循環(huán)遍歷Excel中的數(shù)據(jù)行,將Excel中的數(shù)據(jù)讀取到DataTable中去,如程序1所示。

        DataTable dt=newDataTable();//構(gòu)造內(nèi)存表

        IRow headRow=sheet.GetRow(2);//取第二行

        //設(shè)置datatable字段

        for (int i=headRow.FirstCellNum, len=headRow.LastCellNum; i<;len;i++)

        {//統(tǒng)一定制字段名稱

        dt.Columns.Add("item"+i.ToString());

        }

        for (int r=0, j=tempRow.FirstCellNum, len2=tempRow.LastCellNum;j<;len2;j++,r++)endprint

        {///循環(huán)遍歷Excel數(shù)據(jù)行

        ICell cell=tempRow.GetCell(j);

        if (cell!=null)??????????????????? {

        switch (cell.CellType)//類型處理

        {

        …..//根據(jù)相應(yīng)類型添加到指定字段

        }

        }

        }

        dt.Rows.Add(dataRow);

        程序1? 讀取Excel文件內(nèi)容到DataTable

        3.2?? 數(shù)據(jù)處理

        在數(shù)據(jù)處理環(huán)節(jié),首先計(jì)算增量數(shù)據(jù),然后對(duì)增量數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,將處理結(jié)果轉(zhuǎn)換為SQL插入語(yǔ)句,關(guān)鍵代碼如程序2所示。

        List<;string>;l1=newList<;string>;();//保存Excel中婦女編碼

        List<;string>;l3=newList<;string>;();//保存數(shù)據(jù)庫(kù)中婦女編碼

        for (int i=0;i<;dt1.Rows.Count;i++)//循環(huán)內(nèi)存Datatable中數(shù)據(jù)

        l1.Add(dt1.Rows[i][0].ToString());//保存婦女編碼

        for (int i=0;i<;dt_db.Rows.Count;i++)//遍歷數(shù)據(jù)庫(kù)中婦女編碼

        l3.Add(dt_db.Rows[i][0].ToString());//保存婦女編碼

        var l2=l1.Except(l3);//獲取增量婦女編碼

        DataTable dt3=dt1.Clone();//克隆表結(jié)構(gòu),用于保存增量數(shù)據(jù)

        string cond=listToString(l2);

        DataRow[] rows=dt2.Select("item1 in("+cond+")and item1<;>;''");//過(guò)濾增量數(shù)據(jù)

        foreach (DataRow dr in rows)

        dt3.Rows.Add(dr.ItemArray);

        程序2? 計(jì)算增量數(shù)據(jù)

        獲取完增量數(shù)據(jù)后,對(duì)增量數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,并生成SQL語(yǔ)句,關(guān)鍵代碼如程序3所示。

        for (int i=0;i<;dt3.Rows.Count;i++)//遍歷增量數(shù)據(jù)

        {///添加到3張表中,并根據(jù)數(shù)據(jù)字典信息更新相應(yīng)字段

        string fn="insert into pub_fnxx(字段) values(值);//添加到婦女基本信息表

        sql.Add(fn);//添加到集合列表中

        string zf="insert into pub_zfxx(字段) values(值);

        sql.Add(zf);

        by="insert into pub_byqk (字段) values(值);

        sql.Add(by);

        }

        程序3 生成SQL添加語(yǔ)句

        3.3?? 數(shù)據(jù)批量導(dǎo)入

        批量數(shù)據(jù)導(dǎo)入的SQL語(yǔ)句生成后,使用SQL事務(wù)完成增量數(shù)據(jù)的添加,關(guān)鍵代碼如程序4所示。

        using (SqlTransaction trans=con.BeginTransaction())

        {

        SqlCommand cmd=newSqlCommand();

        try

        {//循環(huán)

        foreach (string sq in sql)

        {

        string cmdText=sq;

        PrepareCommand(cmd,con,trans,cmdText,null);

        int val=cmd.ExecuteNonQuery();

        }

        trans.Commit();}

        catch

        {

        trans.Rollback();

        throw;

        }}

        程序4 SQL事務(wù)導(dǎo)入數(shù)據(jù)

        通過(guò)以上幾個(gè)步驟,最終實(shí)現(xiàn)了基于NPOI的Excel數(shù)據(jù)導(dǎo)入SqlServer程序,程序運(yùn)行界面如圖4所示。

        圖4 程序運(yùn)行效果

        Fig.4 Effect of operation procedure

        4?? 結(jié)論(Conclusion)

        本文通過(guò)對(duì)育齡婦女基本信息Excel文件的處理,實(shí)現(xiàn)了對(duì)增量數(shù)據(jù)批量導(dǎo)入數(shù)據(jù)庫(kù)的功能,在實(shí)際工作中提高了工作效率,但程序運(yùn)行的效率還有待于進(jìn)一步的提高。

        參考文獻(xiàn)(References)

        [1] 張麗英.基于.NET的Excel數(shù)據(jù)批量導(dǎo)入SQL Server的設(shè)計(jì)與

        實(shí)現(xiàn)[J].南通紡織職業(yè)技術(shù)學(xué)院學(xué)報(bào),2012,12(1):7-10.

        [2] 喬治強(qiáng).基于C#的Excel數(shù)據(jù)導(dǎo)入導(dǎo)出SQL Server技術(shù)研究[J].

        電腦知識(shí)與技術(shù),2012(26):195-196.

        [3] 佚名.NPOI HOME [EB/OL].CodePlex,http://npoi.codeplex.

        com/.

        作者簡(jiǎn)介:

        周? 虎(1977-),男,碩士,講師.研究領(lǐng)域:計(jì)算機(jī)應(yīng)用與軟

        件開(kāi)發(fā).endprint

        string zf="insert into pub_zfxx(字段) values(值);

        ;?;?;?;?;?; sql.Add(zf);

        ;?;?;?;?;?;?; by="insert into pub_byqk (字段) values(值);

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; sql.Add(by);

        ;}

        程序3 生成SQL添加語(yǔ)句

        3.3?;?; 數(shù)據(jù)批量導(dǎo)入

        批量數(shù)據(jù)導(dǎo)入的SQL語(yǔ)句生成后,使用SQL事務(wù)完成增量數(shù)據(jù)的添加,關(guān)鍵代碼如程序4所示。

        using (SqlTransaction trans=con.BeginTransaction())

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; {

        SqlCommand cmd=newSqlCommand();

        try

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; {//循環(huán)

        foreach (string sq in sql)

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; {

        string cmdText=sq;

        ;PrepareCommand(cmd,con,trans,cmdText,null);

        int val=cmd.ExecuteNonQuery();

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; }

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; trans.Commit();}

        catch

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; {

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; trans.Rollback();

        throw;

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; }}

        程序4 SQL事務(wù)導(dǎo)入數(shù)據(jù)

        通過(guò)以上幾個(gè)步驟,最終實(shí)現(xiàn)了基于NPOI的Excel數(shù)據(jù)導(dǎo)入SqlServer程序,程序運(yùn)行界面如圖4所示。

        圖4 程序運(yùn)行效果

        ;?;?; Fig.4 Effect of operation procedure

        4?;?; 結(jié)論(Conclusion)

        本文通過(guò)對(duì)育齡婦女基本信息Excel文件的處理,實(shí)現(xiàn)了對(duì)增量數(shù)據(jù)批量導(dǎo)入數(shù)據(jù)庫(kù)的功能,在實(shí)際工作中提高了工作效率,但程序運(yùn)行的效率還有待于進(jìn)一步的提高。

        參考文獻(xiàn)(References)

        [1] 張麗英.基于.NET的Excel數(shù)據(jù)批量導(dǎo)入SQL Server的設(shè)計(jì)與

        ;?;?;?; 實(shí)現(xiàn)[J].南通紡織職業(yè)技術(shù)學(xué)院學(xué)報(bào),2012,12(1):7-10.

        [2] 喬治強(qiáng).基于C#的Excel數(shù)據(jù)導(dǎo)入導(dǎo)出SQL Server技術(shù)研究[J].

        ;?;?;?; 電腦知識(shí)與技術(shù),2012(26):195-196.

        [3] 佚名.NPOI HOME [EB/OL].CodePlex,http://npoi.codeplex.

        ;?;?;?;?; com/.

        作者簡(jiǎn)介:

        周?; 虎(1977-),男,碩士,講師.研究領(lǐng)域:計(jì)算機(jī)應(yīng)用與軟

        ;?;?;?;?; 件開(kāi)發(fā).endprint

        string zf="insert into pub_zfxx(字段) values(值);

        ;?;?;?;?;?; sql.Add(zf);

        ;?;?;?;?;?;?; by="insert into pub_byqk (字段) values(值);

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; sql.Add(by);

        ;}

        程序3 生成SQL添加語(yǔ)句

        3.3?;?; 數(shù)據(jù)批量導(dǎo)入

        批量數(shù)據(jù)導(dǎo)入的SQL語(yǔ)句生成后,使用SQL事務(wù)完成增量數(shù)據(jù)的添加,關(guān)鍵代碼如程序4所示。

        using (SqlTransaction trans=con.BeginTransaction())

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; {

        SqlCommand cmd=newSqlCommand();

        try

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; {//循環(huán)

        foreach (string sq in sql)

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; {

        string cmdText=sq;

        ;PrepareCommand(cmd,con,trans,cmdText,null);

        int val=cmd.ExecuteNonQuery();

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; }

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; trans.Commit();}

        catch

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; {

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; trans.Rollback();

        throw;

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; }}

        程序4 SQL事務(wù)導(dǎo)入數(shù)據(jù)

        通過(guò)以上幾個(gè)步驟,最終實(shí)現(xiàn)了基于NPOI的Excel數(shù)據(jù)導(dǎo)入SqlServer程序,程序運(yùn)行界面如圖4所示。

        圖4 程序運(yùn)行效果

        ;?;?; Fig.4 Effect of operation procedure

        4?;?; 結(jié)論(Conclusion)

        本文通過(guò)對(duì)育齡婦女基本信息Excel文件的處理,實(shí)現(xiàn)了對(duì)增量數(shù)據(jù)批量導(dǎo)入數(shù)據(jù)庫(kù)的功能,在實(shí)際工作中提高了工作效率,但程序運(yùn)行的效率還有待于進(jìn)一步的提高。

        參考文獻(xiàn)(References)

        [1] 張麗英.基于.NET的Excel數(shù)據(jù)批量導(dǎo)入SQL Server的設(shè)計(jì)與

        ;?;?;?; 實(shí)現(xiàn)[J].南通紡織職業(yè)技術(shù)學(xué)院學(xué)報(bào),2012,12(1):7-10.

        [2] 喬治強(qiáng).基于C#的Excel數(shù)據(jù)導(dǎo)入導(dǎo)出SQL Server技術(shù)研究[J].

        ;?;?;?; 電腦知識(shí)與技術(shù),2012(26):195-196.

        [3] 佚名.NPOI HOME [EB/OL].CodePlex,http://npoi.codeplex.

        ;?;?;?;?; com/.

        作者簡(jiǎn)介:

        周?; 虎(1977-),男,碩士,講師.研究領(lǐng)域:計(jì)算機(jī)應(yīng)用與軟

        ;?;?;?;?; 件開(kāi)發(fā).endprint

        string zf="insert into pub_zfxx(字段) values(值);

        ;?;?;?;?;?; sql.Add(zf);

        ;?;?;?;?;?;?; by="insert into pub_byqk (字段) values(值);

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; sql.Add(by);

        ;}

        程序3 生成SQL添加語(yǔ)句

        3.3?;?; 數(shù)據(jù)批量導(dǎo)入

        批量數(shù)據(jù)導(dǎo)入的SQL語(yǔ)句生成后,使用SQL事務(wù)完成增量數(shù)據(jù)的添加,關(guān)鍵代碼如程序4所示。

        using (SqlTransaction trans=con.BeginTransaction())

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; {

        SqlCommand cmd=newSqlCommand();

        try

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; {//循環(huán)

        foreach (string sq in sql)

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; {

        string cmdText=sq;

        ;PrepareCommand(cmd,con,trans,cmdText,null);

        int val=cmd.ExecuteNonQuery();

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; }

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; trans.Commit();}

        catch

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; {

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; trans.Rollback();

        throw;

        ;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?; }}

        程序4 SQL事務(wù)導(dǎo)入數(shù)據(jù)

        通過(guò)以上幾個(gè)步驟,最終實(shí)現(xiàn)了基于NPOI的Excel數(shù)據(jù)導(dǎo)入SqlServer程序,程序運(yùn)行界面如圖4所示。

        圖4 程序運(yùn)行效果

        ;?;?; Fig.4 Effect of operation procedure

        4?;?; 結(jié)論(Conclusion)

        本文通過(guò)對(duì)育齡婦女基本信息Excel文件的處理,實(shí)現(xiàn)了對(duì)增量數(shù)據(jù)批量導(dǎo)入數(shù)據(jù)庫(kù)的功能,在實(shí)際工作中提高了工作效率,但程序運(yùn)行的效率還有待于進(jìn)一步的提高。

        參考文獻(xiàn)(References)

        [1] 張麗英.基于.NET的Excel數(shù)據(jù)批量導(dǎo)入SQL Server的設(shè)計(jì)與

        ;?;?;?; 實(shí)現(xiàn)[J].南通紡織職業(yè)技術(shù)學(xué)院學(xué)報(bào),2012,12(1):7-10.

        [2] 喬治強(qiáng).基于C#的Excel數(shù)據(jù)導(dǎo)入導(dǎo)出SQL Server技術(shù)研究[J].

        ;?;?;?; 電腦知識(shí)與技術(shù),2012(26):195-196.

        [3] 佚名.NPOI HOME [EB/OL].CodePlex,http://npoi.codeplex.

        ;?;?;?;?; com/.

        作者簡(jiǎn)介:

        周?; 虎(1977-),男,碩士,講師.研究領(lǐng)域:計(jì)算機(jī)應(yīng)用與軟

        ;?;?;?;?; 件開(kāi)發(fā).endprint

        猜你喜歡
        編程
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        亚洲国产一区二区三区亚瑟| 在线播放国产自拍av| 国产乱理伦在线观看美腿丝袜| 女人高潮久久久叫人喷水| 国产精品无码一区二区在线看| 国产成人www免费人成看片| av无码一区二区三| 国产猛男猛女超爽免费av| 亚洲国产精品成人av在线不卡| 国产69久久精品成人看| 熟女人妇交换俱乐部| 99国产精品丝袜久久久久| 国产毛片三区二区一区| 亚洲精品国产亚洲av| 国产综合色在线精品| 日韩高清在线观看永久| 欧美色资源| 亚洲熟女一区二区三区不卡 | 国产精品农村妇女一区二区三区| 亚洲丰满熟女一区二亚洲亚洲| 国产一精品一av一免费爽爽| 精品无码久久久久成人漫画| 亚洲国产香蕉视频欧美| 手机在线看片在线日韩av| 户外精品一区二区三区 | 国产二区中文字幕在线观看 | 国产农村熟妇videos| 国产精品久久久久久人妻精品| 曰本亚洲欧洲色a在线| 精品亚洲国产日韩av一二三四区| 丰满人妻被两个按摩师| 国产成人无码一区二区三区在线| 国产精品国产三级国产av创 | JIZZJIZZ国产| 日韩精品一级在线视频| 亚洲成人中文字幕在线视频| 久久久g0g0午夜无码精品| 久久精品视频91| 亚洲中字永久一区二区三区| 国产一区二区三区精品免费av | 久久精品国产乱子伦多人|