老司机夜插-理伦理片-理伦片免费-理伦片免费观看-理伦片免费看-理伦日韩-理论福利片-理论片第一页-理论片电影-理论片理论

金喜正规买球

WinForm控件開發中如何實現DataGridView數據導出功能

轉帖|其它|編輯:郝浩|2010-12-02 11:07:54.000|閱讀 1356 次

概述:做WinForm開發離不開一些基本的控件,作為數據列表顯示控件中,其中最為重要的要數 DataGridView,以前用的是一些第三方控件,提供了比較靈活和方便的功能,比如:根據所見即所得導出數據到Excel 或者 文本,沒辦法自力更生才是生存之道。DataGridView的數據導出功能在網絡上搜索后,有一些同仁實現過,但有些是需要依賴Excel ,這種方式不但耦合性強,性能也差,為了一勞永逸的解決這個問題,特改寫了代碼,在此提供給各位同仁,歡迎斧正。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

  做WinForm開發離不開一些基本的控件,作為數據列表顯示控件中,其中最為重要的要數 DataGridView,以前用的是一些第三方控件,提供了比較靈活和方便的功能,比如:根據所見即所得導出數據到Excel 或者 文本,沒辦法自力更生才是生存之道。

  DataGridView的數據導出功能在網絡上搜索后,有一些同仁實現過,但有些是需要依賴Excel ,這種方式不但耦合性強,性能也差,為了一勞永逸的解決這個問題,特改寫了代碼,在此提供給各位同仁,歡迎斧正。

1、首先,看使用方法:

dgvProjectList.ExportToExcel();

或者

dgvProjectList.ExportToExcel("項目列表");

如果不使用數據導出功能,不會對現有 DateGridView控件產生任何負作用,也不占用內存;

2、擴展方法定義:

/// <summary>
/// 將表格數據導出到csv表格文件中
/// </summary>
/// <param name="dgv"></param>
public static void ExportToExcel(this DataGridView dgv)
{
ExportToExcel(dgv, "表格數據");
}
/// <summary>
/// 將表格數據導出到csv表格文件中
/// </summary>
/// <param name="dgv"></param>
public static void ExportToExcel(this DataGridView dgv, string fileName)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "表格數據文件(*.csv)|*.csv";
sfd.FileName = string.Format("{0}.csv", fileName);
if (sfd.ShowDialog() == DialogResult.OK)
{
fileName = sfd.FileName;
ExportHelper.ExportDetails(dgv.GetDataTable(), ExportHelper.ExportFormat.CSV, fileName, ExportHelper.ApplicationType.WindowsForm);
 

}
}
/// <summary>
/// 將表格數據導出到文本文件中
/// </summary>
/// <param name="dgv"></param>
public static void ExportToText(this DataGridView dgv)
{
ExportToText(dgv, "表格數據");
}

/// <summary>
/// 將表格數據導出到文本文件中
/// </summary>
/// <param name="dgv"></param>
public static void ExportToText(this DataGridView dgv, string fileName)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "文本文件(*.txt)|*.txt";
sfd.FileName = string.Format("{0}.txt", fileName);
if (sfd.ShowDialog() == DialogResult.OK)
{
fileName = sfd.FileName;
ExportHelper.ExportDetails(dgv.GetDataTable(), ExportHelper.ExportFormat.TXT, fileName, ExportHelper.ApplicationType.WindowsForm);
}
}

3、導出類定義:

//導出輔助類

public class ExportHelper
{
/// <summary>
/// Export format enumeration
/// </summary>
public enum ExportFormat : int
{
/// <summary>
/// CSV
/// </summary>
CSV,
/// <summary>
/// DOC
/// </summary>
DOC,
/// <summary>
/// TXT
/// </summary>
TXT
};

/// <summary>
/// 應用程序類型
/// </summary>
public enum ApplicationType : int
{
WindowsForm,
Web
}

/// <summary>
/// 導出SmartGridView的數據源的數據為Excel
/// </summary>
// <param name="dt">數據源</param>
/// <param name="fileName">文件名</param>
/// <param name="ApplicationType">應用宿主類型</param>
public static void ExportDetails(DataTable dt, string fileName, ApplicationType ApplicationType)
{
ExportDetails(dt, ExportFormat.CSV, fileName, ApplicationType);
}

#region ExportDetails OverLoad : Type#1

// Function : ExportDetails
// Arguments : DetailsTable, FormatType, FileName
// Purpose : To get all the column headers in the datatable and
// exorts in CSV / Excel format with all columns

public static void ExportDetails(DataTable DetailsTable, ExportFormat FormatType, string FileName, ApplicationType ApplicationType)
{
try
{
if (DetailsTable.Rows.Count == 0)
throw new Exception("There are no details to export.");

// Create Dataset
DataSet dsExport = new DataSet("Export");
DataTable dtExport = DetailsTable.Copy();
dtExport.TableName = "Values";
dsExport.Tables.Add(dtExport);

// Getting Field Names
string[] sHeaders = new string[dtExport.Columns.Count];
string[] sFileds = new string[dtExport.Columns.Count];

for (int i = 0; i < dtExport.Columns.Count; i++)
{
sHeaders[i] = dtExport.Columns[i].ColumnName;
sFileds[i] = ReplaceSpecialChars(dtExport.Columns[i].ColumnName);
}

if (ApplicationType == ApplicationType.Web)
{
Export_with_XSLT_Web(dsExport, sHeaders, sFileds, FormatType, FileName);
}
else if (ApplicationType == ApplicationType.WindowsForm)
{
Export_with_XSLT_Windows(dsExport, sHeaders, sFileds, FormatType, FileName);
}
}
catch (Exception Ex)
{
throw Ex;
}
}

#endregion // ExportDetails OverLoad : Type#1

#region ExportDetails OverLoad : Type#2

// Function : ExportDetails
// Arguments : DetailsTable, ColumnList, FormatType, FileName
// Purpose : To get the specified column headers in the datatable and
 // exorts in CSV / Excel format with specified columns

public static void ExportDetails(DataTable DetailsTable, int[] ColumnList, ExportFormat FormatType, string FileName,
ApplicationType ApplicationType)
{
try
{
if (DetailsTable.Rows.Count == 0)
throw new Exception("There are no details to export");

// Create Dataset
DataSet dsExport = new DataSet("Export");
DataTable dtExport = DetailsTable.Copy();
dtExport.TableName = "Values";
dsExport.Tables.Add(dtExport);

if (ColumnList.Length > dtExport.Columns.Count)
throw new Exception("ExportColumn List should not exceed Total Columns&quot;);

// Getting Field Names
string[] sHeaders = new string[ColumnList.Length];
string[] sFileds = new string[ColumnList.Length];

for (int i = 0; i < ColumnList.Length; i++)
{
if ((ColumnList[i] < 0) || (ColumnList[i] >= dtExport.Columns.Count))
throw new Exception("ExportColumn Number should not exceed Total Columns Range");

sHeaders[i] = dtExport.Columns[ColumnList[i]].ColumnName;
sFileds[i] = ReplaceSpecialChars(dtExport.Columns[ColumnList[i]].ColumnName);
}

if (ApplicationType == ApplicationType.Web)
{
Export_with_XSLT_Web(dsExport, sHeaders, sFileds, FormatType, FileName);
}
else if (ApplicationType == ApplicationType.WindowsForm)
{
Export_with_XSLT_Windows(dsExport, sHeaders, sFileds, FormatType, FileName);
}
}
catch (Exception Ex)
{
throw Ex;
}
}

#endregion // ExportDetails OverLoad : Type#2

#region ExportDetails OverLoad : Type#3

// Function : ExportDetails
// Arguments : DetailsTable, ColumnList, Headers, FormatType, FileName
// Purpose : To get the specified column headers in the datatable and
// exorts in CSV / Excel format with specified columns and
// with specified headers

public static void ExportDetails(DataTable DetailsTable, int[] ColumnList, string[] sHeaders, ExportFormat FormatType,
string FileName, ApplicationType ApplicationType)
{
try
{
if (DetailsTable.Rows.Count == 0)
throw new Exception("There are no details to export");

// Create Dataset
DataSet dsExport = new DataSet("Export");
DataTable dtExport = DetailsTable.Copy();
dtExport.TableName = "Values";
dsExport.Tables.Add(dtExport);

if (ColumnList.Length != sHeaders.Length)
throw new Exception("ExportColumn List and Headers List should be of same length");
else if (ColumnList.Length > dtExport.Columns.Count || sHeaders.Length > dtExport.Columns.Count)
throw new Exception("ExportColumn List should not exceed Total Columns");

// Getting Field Names
string[] sFileds = new string[ColumnList.Length];

for (int i = 0; i < ColumnList.Length; i++)
{
if ((ColumnList[i] < 0) || (ColumnList[i] >= dtExport.Columns.Count))
throw new Exception("ExportColumn Number should not exceed Total Columns Range");

sFileds[i] = ReplaceSpecialChars(dtExport.Columns[ColumnList[i]].ColumnName);
}

if (ApplicationType == ApplicationType.Web)
{
Export_with_XSLT_Web(dsExport, sHeaders, sFileds, FormatType, FileName);
}
else if (ApplicationType == ApplicationType.WindowsForm)
{
Export_with_XSLT_Windows(dsExport, sHeaders, sFileds, FormatType, FileName);
}
}
catch (Exception Ex)
{
throw Ex;
}
}

/// <summary>
/// 導出SmartGridView的數據源的數據
/// </summary>
/// <param name="DetailsTable">數據源</param>
/// <param name="columnNameList">導出的列的列名數組</param>
/// <param name="sHeaders">導出的列標題數組</param>
/// <param name="FormatType">導出文件的格式</param>
/// <param name="FileName">輸出文件名</param>
/// <param name="ApplicationType">應用宿主類型</param>
public static void ExportDetails(DataTable DetailsTable, string[] columnNameList, string[] sHeaders,
ExportFormat FormatType, string FileName, ApplicationType ApplicationType)
{
List<int> columnIndexList = new List<int>();
DataColumnCollection dcc = DetailsTable.Columns;

foreach (string s in columnNameList)
{
columnIndexList.Add(GetColumnIndexByColumnName(dcc, s));
}

ExportDetails(DetailsTable, columnIndexList.ToArray(), sHeaders, FormatType, FileName, ApplicationType);
}

#endregion // ExportDetails OverLoad : Type#3

#region ExportDetails OverLoad : Type#3

// Function : ExportDetails
// Arguments : DetailsTable, FormatType, FileName
// Purpose : To get all the column headers in the datatable and
// exorts in CSV / Excel format with all columns
public void ExportDetails(DataTableCollection DetailsTables, ExportFormat FormatType, string FileName, ApplicationType ApplicationType)
{
try
{
string NewFileName;

foreach (DataTable DetailsTable in DetailsTables)
{
if (DetailsTable.Rows.Count == 0)
throw new Exception("There are no details to export.");

NewFileName = FileName.Substring(0, FileName.LastIndexOf("."));
NewFileName += " - " + DetailsTable.TableName;
NewFileName += FileName.Substring(FileName.LastIndexOf("."));

// Create Dataset
DataSet dsExport = new DataSet("Export");
DataTable dtExport = DetailsTable.Copy();
dtExport.TableName = "Values";
dsExport.Tables.Add(dtExport);

// Getting Field Names
string[] sHeaders = new string[dtExport.Columns.Count];
string[] sFileds = new string[dtExport.Columns.Count];

for (int i = 0; i < dtExport.Columns.Count; i++)
{
sHeaders[i] = dtExport.Columns[i].ColumnName;
sFileds[i] = ReplaceSpecialChars(dtExport.Columns[i].ColumnName);
}

if (ApplicationType == ApplicationType.Web)
{
Export_with_XSLT_Web(dsExport, sHeaders, sFileds, FormatType, FileName);
}
else if (ApplicationType == ApplicationType.WindowsForm)
{
Export_with_XSLT_Windows(dsExport, sHeaders, sFileds, FormatType, FileName);
}
}
}
catch (Exception Ex)
{
throw Ex;
}
}

#endregion //ExportDetails OverLoad : Type#4

#region Export_with_XSLT_Web

// Function : Export_with_XSLT_Web
// Arguments : dsExport, sHeaders, sFileds, FormatType, FileName
// Purpose : Exports dataset into CSV / Excel format
private static void Export_with_XSLT_Web(DataSet dsExport, string[] sHeaders, string[] sFileds, ExportFormat FormatType, string FileName)
{
try
{
// Appending Headers
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ContentType = String.Format("text/{0}", FormatType.ToString().ToLower());
HttpContext.Current.Response.AddHeader("content-disposition", String.Format("attachment;filename={0}.{1}", FileName, FormatType.ToString().ToLower()));
//HttpContext.Current.Response.ContentEncoding = encoding;
 

// XSLT to use for transforming this dataset.
MemoryStream stream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(stream, Encoding.Default);

CreateStylesheet(writer, sHeaders, sFileds, FormatType);
writer.Flush();
stream.Seek(0, SeekOrigin.Begin);

XmlDataDocument xmlDoc = new XmlDataDocument(dsExport);
XslCompiledTransform xslTran = new XslCompiledTransform();
xslTran.Load(new XmlTextReader(stream));

System.IO.StringWriter sw = new System.IO.StringWriter();
xslTran.Transform(xmlDoc, null, sw);

//Writeout the Content
HttpContext.Current.Response.Write(sw.ToString());
sw.Close();
writer.Close();
stream.Close();
HttpContext.Current.Response.End();
}
catch (ThreadAbortException Ex)
{
string ErrMsg = Ex.Message;
}
catch (Exception Ex)
{
throw Ex;
}
}

#endregion // Export_with_XSLT

#region Export_with_XSLT_Windows

// Function : Export_with_XSLT_Windows
// Arguments : dsExport, sHeaders, sFileds, FormatType, FileName
// Purpose : Exports dataset into CSV / Excel format
private static void Export_with_XSLT_Windows(DataSet dsExport, string[] sHeaders, string[] sFileds,
ExportFormat FormatType, string FileName)
{

try
{
// XSLT to use for transforming this dataset.
MemoryStream stream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(stream, Encoding.UTF8);

CreateStylesheet(writer, sHeaders, sFileds, FormatType);
writer.Flush();
stream.Seek(0, SeekOrigin.Begin);

XmlDataDocument xmlDoc = new XmlDataDocument(dsExport);
XslCompiledTransform xslTran = new XslCompiledTransform();
xslTran.Load(new XmlTextReader(stream));

System.IO.StringWriter sw = new System.IO.StringWriter();
xslTran.Transform(xmlDoc, null, sw);

//Writeout the Content
StreamWriter strwriter = new StreamWriter(FileName, false, Encoding.Default);
strwriter.WriteLine(sw.ToString());
strwriter.Close();
sw.Close();
writer.Close();
stream.Close();
}
catch (Exception Ex)
{
throw Ex;
}
}

#endregion // Export_with_XSLT

#region CreateStylesheet

// Function : WriteStylesheet
// Arguments : writer, sHeaders, sFileds, FormatType
// Purpose : Creates XSLT file to apply on dataset's XML file
private static void CreateStylesheet(XmlTextWriter writer, string[] sHeaders, string[] sFileds, ExportFormat FormatType)
{
try
379 {
// xsl:stylesheet
string ns = "//www.w3.org/1999/XSL/Transform";
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
writer.WriteStartElement("xsl", "stylesheet", ns);
writer.WriteAttributeString("version", "1.0");
writer.WriteStartElement("xsl:output");
writer.WriteAttributeString("method", "text");
writer.WriteAttributeString("version", "4.0");
writer.WriteEndElement();

// xsl-template
writer.WriteStartElement("xsl:template");
writer.WriteAttributeString("match", "/");

// xsl:value-of for headers
for (int i = 0; i < sHeaders.Length; i++)
{
writer.WriteString("\"");
writer.WriteStartElement("xsl:value-of");
writer.WriteAttributeString("select", "'" + sHeaders[i] + "'");
writer.WriteEndElement(); // xsl:value-of
writer.WriteString("\"");
if (i != sFileds.Length - 1) writer.WriteString((FormatType == ExportFormat.CSV) ? "," : " ");
}

// xsl:for-each
writer.WriteStartElement("xsl:for-each");
writer.WriteAttributeString("select", "Export/Values");
writer.WriteString("\r\n");

// xsl:value-of for data fields
for (int i = 0; i < sFileds.Length; i++)
{
writer.WriteStartElement("xsl:value-of");
writer.WriteAttributeString("select", sFileds[i]);
writer.WriteEndElement(); // xsl:value-of
writer.WriteString("\"");
if (i != sFileds.Length - 1) writer.WriteString((FormatType == ExportFormat.CSV) ? "," : " ");
}

writer.WriteEndElement(); // xsl:for-each
writer.WriteEndElement(); // xsl-template
writer.WriteEndElement(); // xsl:stylesheet
writer.WriteEndDocument();
}
catch (Exception Ex)
{
throw Ex;
}
}

public static string ReplaceSpecialChars(string input)
{
// space -> _x0020_
// % -> _x0025_
// # -> _x0023_
// & -> _x0026_
// / -> _x002F_

input = input.Replace(" ", "_x0020_")
.Replace("%", "_x0025_")
.Replace("#", "_x0023_")
.Replace("&", "_x0026_")
.Replace("/", "_x002F_");

return input;
}
/// <summary>
/// 根據數據列的列名取數據列的列索引
/// </summary>
/// <param name="dcc">數據列集合</param>
/// <param name="columnName">數據列的列名</param>
/// <returns></returns>
public static int GetColumnIndexByColumnName(DataColumnCollection dcc, string columnName)
{
int result = -1;

for (int i = 0; i < dcc.Count; i++)
{
{
break;
}
}

return result;
}
#endregion // WriteStylesheet

}
 


標簽:

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn

文章轉載自:博客轉載

為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
天天拍天天色 | 亚洲免费网站观看视频 | 特级做A爰片毛片免费69 | 我和丰满老师疯狂做爰在线观看 | 国产成人手机高清在线观看网站 | 日本一道高清一区二区三区 | 日本a在线看 | 少妇交换做爰3 | 久久天天干| 久久精品国产99久久72 | 久久草这里全是精品香蕉频线观 | 日韩一级视频在线观看播放 | 日韩国产精品视频 | wwxxx免费| 国产又黄又爽又猛免费app | 永久免费av网站 | 老熟女强人国产在线 | 国产视频1 | 亚洲精品久久久久久久久久无码 | 1区2区3区4区产品乱码99 | 精品免费看一区二区三区A片 | 久久免费看视频 | 麻豆映画传媒新剧免费观看 | 日本黄色免费网站 | 欧美人又长又大又粗无码视频一区 | 99久久久免费精品免费 | 国产精品福利电影 | 欧美日韩一区二区三 | 亚洲开心色 | 亚洲AV久久无码精品夜夜挺 | 成熟iphone69| 色狼亚洲色图 | 日本中文字幕在线视频站 | 快播网站导航 | 久久精品123 | 精东视频影视传媒制作精品免费版 | 2019天天操夜夜操 | 久久精品无码人妻无码AV蜜臀 | 亚洲欧美国产双大乳头 | 97在线精品视频免费 | 成人日韩熟女高清视频一区 | 中文字幕 欧美激情 | 五月天婷婷网亚洲综合在线 | 欧美特级视频 | 成人午夜A片产无码免费视频日本 | 91成人啪国产啪永久地址 | 国产 亚洲 中文在线 字幕 | 国产精品一区二区精品视频导航 | 日韩人妻少妇一区二区三区 | 九九热免费在线观看 | 黄色网址免费大全 | ofozy99国产 | 国产精品久久久久久久人人看 | 欧美日韩激情 | 国产乱子夫妻XX黑人XYX真爽 | 果冻传媒网站免费入口破解版 | 国产人妻系列无码专区第二页 | 天堂网在线观看视频 | 婷婷激情综合色五月久久 | 2分30秒不间断踹息声音频app | 九九精品视频在线 | 午夜一区二区免费视频 | 免费观看黄色的网站 | 黄页大全在线观看 | 久久久日韩成人精品电影 | 99re最新视频 | 日韩在线视频导航 | 日本电影推荐 | 日本韩国视频在线观看 | 国产精品色吧国产精品 | 亚洲A片永久精品无码APP | 国产色网址 | 福利在线网址 | 伊人久久五月天 | 欲色影视天天一区二区三区色香欲 | 欧美性高清极品猛交 | 国精产品一区二区三区 | 欧美综合色 | 日韩精品小视频 | 人善交video欧美 | 天天插日日胔夜夜干 | 久久天堂一区二区三区 | 久久成人永久免费播放 | 亚洲 欧美 综合 高清 在线 | 亚洲 欧美 字幕 一区 在线 | 樱花草在线观看播放视频www | 麻豆精品一区二正一三区 | 日批插的越快越爽好大好硬 | XL司令第一季全集在线观看 | 亚洲欧美啪啪 | 日本ww色 | 久久精品人妻无码一区二区三区网 | 亚洲国产成人九九综合 | 黄a免费| 苍井空三点快播 | 国产剧情精品在线 | 漂亮的保姆7日本在线播放 漂亮人妻被公日日躁国产 漂亮人妻洗澡被公强欧美精品无码 | 韩国伦理片手机在线观看 | 欧美激情欧美狂野欧美精品免费 | 国产成人精品久久久久婷婷 | 日本高清无卡码一区二区久久 | 好爽好紧好大的免费视频国产 | 天天插日日操 | 肉伦禁忌小说 | 无码又爽又刺激A片涩涩动漫软件 | 中文字幕欧美日韩久久 | 成人免费影 | 国产亚洲精品AAAA片APP | 精品国产一区二区三区四区勃大卷 | 欧美阿v天堂视频在99线 | 亚洲激情黄色 | WWW国产亚洲精品久久 | 韩国影片爱的色放 | 亚洲一区二区三区四区五区六 | 狠狠五月深爱婷婷网免费 | 小妖精我要你真紧好爽视频 | 成年女人免费影院播放 | 巜疯狂的少妇4做爰 | 成人韩免费网站 | 成人亚洲A片V一区二区三区小说 | 无码人妻视频又大又粗欧美 | 麻豆一区区三区四区产品麻豆 | 另类专区av无码 | 久久精品久久久 | 狂躁美女大BBBBBB视频1 | 免费人成黄页在线观看日本 | 最新 国产 精品 精品 视频 | 久久夜色邦福利网 | 在线网站免费观看入口 | 超碰97人人做人人爱少妇 | 成人午夜视频在线观 | 91在线视频一区 | 欧美人与动牲交免费观看视频 | 999久久狠狠免费精品 | 玖玖资源站 | 你懂得在线视频 | 黄色网址在线免费看 | 欧美大码毛片在线播放 | 欧美日韩永久久一区二区三区 | 欧美日韩国产中文高清视频 | 日本无码特黄午夜视频在线观看 | 97人妻熟女中文免费视频 | 国产真实乱人偷精品人妻图 | 一级毛片视频免费 | 日本一区二区三区在线观看网站 | 直接观看黄网站免费视频 | aaaaaaa一级毛片| 六月伊人 | 色翁荡熄又大又硬又粗又视频软件 | 91久久精品一区二区 | 天美传媒影视在线网址 | 中文字幕高清免费不卡视频 | 国产又黄又粗又爽又色的视频软件 | 被灌满了嗯不行NP | 高清无码v视频日本www | 日韩黄色免费 | 国产又粗又猛又爽又黄A片 国产又粗又猛又爽又黄A片漫 | 亚洲伊人久久综合成人 | 无翼乌之全彩爆乳口工不知火舞 | 亚洲AV鲁丝一区二区三区 | 日本无码WWW在线视频观看 | 伊人性伊人情综合网 | 精品AV一区二区三区不卡 | www.日韩视频 | 亚洲国产免费 | 日本三级很黄试看120秒 | 一级一级毛片免费播放 | 亚洲无人区码二码三码区别图 | 亚洲熟女乱色综合亚洲图片 | 亚洲欧美人成网站综合在线 | 玖玖在线资源 | 日韩性做爰免费A片AA片 | 99热在这里只有免费精品 | 日本三级黄色片网站 | 狠狠狠地在啪线香蕉 | 久久精品美女 | 精品国产人成亚洲区 | 日日摸夜夜添夜夜添A片图片 | 欧美日韩免费在线观看 | 欧美成人香蕉网在线观看 | 中文字幕在线视频网 | 天天射狠狠干 | 国产AV亚洲精品久久久久软件 | 涩涩撸2015最新版 | 欧洲不卡一卡2卡三卡4卡网站 | 伦理片在线观看午夜伦理电影三级网 | 丁香花视频免费播放 | 午夜婷婷一夜七次郎 | 欧美午夜网 | 不得不看的极品av作品 | 猛烈顶弄H| 亚洲精品卡2卡3卡4卡乱码 | 午夜电影播放器 | 天天久 | 毛片在线看片 | 综合玖玖 | 在线观看免费情网站大全 | 久久99精品国产麻豆宅宅 | 中文字幕在线观看网站 | 亚洲综合中文字幕无线码 | 夜夜精品视频一区二区 | 看全色黄大色黄大片爽一次 | 日本一二三区在线视频 | 丁香花丁香五香天堂网 | 久久精品123 | 亚洲精品中文字幕一区二区三区 | 亚洲AV在线无码播放毛片浪潮 | 色婷婷在线播放 | 男人午夜视频在线观看 | 成人影视网 | 亚洲精品成人在线 | 秋霞影视一区 | 在线精品国产一区二区 | 色欲国产麻豆一精品一AV一免费 | 婷婷激情综合色五月久久 | 最新午夜国内自拍视频 | 嗨嗨影院伦理电影 | 毛茸茸的大逼 | 免费一区二区三区无码A片 免费又粗又硬进去好爽A片视频 | 东京道一本热中文字幕 | 伊人大相蕉在线看青青 | 91情侣在线精品国产免费 | 日韩黄色免费 | 亚洲区色情区激情区小说色情书 | 成人网在线观看 | 菊色宫快播电影 | 一女多男np高辣文h 一女多男nP现代高H | 国产亚洲玖玖玖在线观看 | 男女拍拍免费视频60分钟 | 美国毛片一级视频在线aa | 亚洲午夜网未来影院 | 一本大道一卡二卡三卡四卡在线观 | 日本九九视频 | 亚洲欧美综合日韩字幕v在线 | 婷婷激情六月 | 色综合精品无码一区二区三区 | 又大又爽又黄无码A片小说 又大又硬又粗做大爽A片 | 黄色一级片免费 | 另类专区另类专区亚洲 | 99在线观看国产 | 亚洲国产成人久久精品影视 | 丁香五月 激情 婷婷 | 宅男噜噜噜66网站 | 欧美va电影 | 日日碰狠狠躁久久躁20247 | 天堂在线www在线资源 | 国产高清精品入口91 | 日本女人下面毛茸茸 | 欧美1卡一卡二卡三新区 | zzzzxxxx日本| 性色欲情网站IWWW | 波多野结衣 美乳人妻 | 明星xxxx hd videos | 亚洲色无码播放 | 五月激情综合网 | 国产a网| 日本高清不卡一区二区三区 | 香蕉大美女天天爱天天做 | 日本A级做爰午夜免费视频 日本A片成人片免费视频生活片 | 国产超碰人人爱被IOS解锁 | 精品国精品国产自在久国产应用 | 国产亚洲精品久久yy50 | 伊人综合网 | 欧美一二三区视频 | www.日本com | 日韩国产一区二区三区四区五区 | 好吊妞无缓冲视频观看 | 最近高清中文在线观看国语字幕7 | 久久影院一区二区三区 | 里番本子侵犯肉全彩A片视频一区 | 高清自拍亚洲精品二区 | 视频一区 日韩 | 日本午夜免费福利视频 | 香蕉久久综合 | 泷泽罗拉 快播 | 国产日产人妻精品精品 | 搞av在线电影 | 狠狠干狠狠干狠狠干 | 最近新韩国日本免费观看 | 亚洲区激情区图片小说区 | 精品一卡二卡三卡四卡视频区 | 日本一本有码无码综合视频 | 日韩精品系列产品 | 韩国视频一区 | 欧美xxxxhd| 欧美日产国产精选 | 久草在线视频免费老司机 | 久久久久久久免费 | 久久综合久久综合九色 | 波多野结衣xxxx性精品 | 校花裸体扒开两腿让我桶 | 国产精品久久国产精品99 | 大学生做爰全过程免费的视频 | 日韩三级影片 | 亚洲女初尝黑人巨高清 | 免费新电影 | 九九在线免费视频 | 欧美人与动牲交免费观看视频 | 一本久到久久亚洲综合 | 香蕉人人超人人超碰超国产 | 成人做爰69片免费看网站 | 欲爱免费观看高清完整版 | 一级bbbbbbbbb毛片 | 国产丰满人妻一区二区三区 | 国产亚洲精品久久播放 | 翁公的粗大挺进我的密道 | 亚洲精品久久久午夜麻豆 | 免费无套内谢少妇毛片A片软件 | 亚洲国产精品色情20242024 | 精品一卡2卡三卡4卡乱码免费 | 99爱视频免费高清在线观看 | 美国人成毛片在线播放 | 日韩小视频在线 | 免费A片国产毛无码A片樱花 | 精品AV综合一区二区三区 | 国产人在线成免费视频 | 亚洲精品卡一卡三卡四卡乱码 | 国模沟沟一区二区三区 | 一区二区乱子伦在线播放 | 一区二区三区精密机械 | 欧美色v| 爱的色放mp4下载 | 日本亚洲一区二区三区 | 日本无翼乌邪恶彩色无摭挡3B | 人人爱夜夜爽日日做视频 | 天天操夜夜操夜夜操 | 最新四虎影在线在永久观看 | 日本护士xxxx在线播放 | 亚洲凤凰av免费观看 | 欧美大幼| 精品成人 | 在线成人综合色一区 | 狠狠色成人综合网图片区 | 美女脱精光让男人桶下面免费 | 日本一区二区在免费 | 精品久久久中文字幕二区 | 骚片AV蜜桃精品一区 | 日产国产欧美韩国在线 | 日韩欧美在线视频一区二区 | 毛片a级三毛片免费播放 | 人人澡人人澡人人澡 | 麻豆文化传媒免费网站 | 囯产精品流白浆高潮免费A片 | 波多野结衣 久久 | 亚洲最大在线视频 | 午夜爱爱免费视频体验区 | 性色爽爱性色爽爱网站 | 99er4久久视频精品首页 | 成人无码区免费A片视频WWW | 要狠狠撸 | 菊色宫快播电影 | 国产GV无码A片在线观看 | 亚洲手机在线观看 | 国产一级一片免费播放刺激 | 中国免费黄色片 | 免费99精品国产人妻自在线 | 影音先锋av电影 | 亚洲欧美日本 | 不良网站在线观看 | 国内精品视频九九九九 | 日韩三级在线播放 | se成人国产精品 | 无套内谢少妇毛片AAAA片免费 | 日韩欧美高清色码 | 久久精品中文字幕第一页 | 国产SUV精二区 | 一级毛片视频免费 | 91制片厂果冻传媒公司麻豆 | 亚洲欧美v国产一区二区 | 国产成人毛片亚洲精品不卡 | 午夜DV内射一区区 | xxxx.欧美| 免费国产直接看片av | 免费观看情趣v视频网站 | 欧美日韩一区二区三区视视频 | 色综合久久久久久888 | A片人人澡C片人人人妻付费 | 欧美日韩在线视频观看 | 99视频久九热精品 | 四房播播最新网址 | 免费黄色在线播放 | 成人福利免费在线观看 | 色噜噜噜AV亚洲男人的天堂 | 成人免费AA片在线观看 | 韩国三级在线高速影院 | 在线综合亚洲中文精品 | 久久婷婷五月综合色丁香 | 色小说综合网 | 婷婷五月情 | 一级黄色片免费看 | 中文字幕人妻熟女人妻 | 国产精品久久欧美一区 | 波多野结衣dvd在线播放 | 天美传媒影视在线网址 | 色中色 地址 | 久久波多野结衣 | 中文字幕日韩精品一区口 | 91极品哺乳期女神挤奶在线 | 丁香五月啪激情综合 | 国语自产拍在线观看偷拍在 | 人人看高清| 天天操夜夜操夜夜操 | 人民的名义 未删减版 | 里番本子侵犯肉全彩A片视频一区 | 日本A级作爱片金瓶双艳 | 第一次破處在线国语视频播放 | 久久老司机波多野结衣 | J8又粗又硬又大又爽又网站 | 三色黄A片免费播放335VCC | 51社区精品视频 | 欧美综合自拍亚洲综合图 | 伦理三级电影在线观看 | 牛牛影视精品一区二区在线看 | 嗯啊 流水噗呲h啪啪皇上双性 | 糖心VLOG精品一区二区 | 国产亚洲中文日本不卡二区 | 激情五月婷婷色 | 亚洲AV国产精品无码A片APP | 夜夜操操 | 狠狠综合久久久久综 | 国产免国产免费 | 亚洲毛片一级带毛片基地 | 韩日一区二区三区 | 欧美mv日韩mv国产mv网站 | 扒开女人下面使劲桶动态图 | 欧美性猛交AAAA片黑人 | 五月天婷婷视频在线观看 | 天天综合网色中文字幕 | 国产亚洲熟妇在线视频 | 国产传媒在线观看视频免费观看 | 4438成人情人网站 | 欧美人与动牲交免费观看视频 | 樱花草视频在线观看社区WWW | 少妇高潮潮喷到猛进猛出小说 | 97国产影院| 女人下边被添全过程A片小说 | 日本妇人成熟A片一区-老狼 | 亚洲欧洲日韩在线电影 | 日本人×体xx艺术 | 最新黄网 | 亚洲欧洲日本无在线码播放 | 国产一卡2卡3卡4卡无卡免费视频 | 91青青视频 | 高清一级毛片一本到免费观看 | 69欧美xxxxx色护士视频 | 国产香蕉在线观看 | 午夜视频www| 香蕉乱码成人久久天堂爱免费 | 久久综合五月天婷婷伊人 | 久久综合偷拍无码 | 国产乱码精品一品二品 | 日本爆乳无码一区二区漫画 | 九九九影院 | 男男腐文污高干嗯啊快点1V1 | 亚洲AV又黄又爽超级A片软件 | 天堂8中文在线最新版在线 天堂8在线天堂资源在线 | 国产中文字字幕乱码无限 | 日本女人毛茸茸 | 酒色成人 | 91国内精品视频 | 在线观看日韩 | 偷偷狠狠的日日2020 | 免费一区在线观看 | 簧片电影大全网站 | 宅女午夜福利免费视频 | 免费的三级毛片 | 国产大毛片 | 国精视频一卡二卡三卡四卡 | 国产乱码精品一区三上 | 免费黄色成人 | 嗯好湿用力的啊c进来动态图 | 精品黑人一区二区三区久久 | 黄色片网址在线观看 | 被少妇滋润了一夜爽爽爽小说 | 鸭王精品一区二区 | 国产亚洲午夜精品a一区二区 | 国产美女视频一区二区二三区 | 911亚洲国产自产 | 日本aⅴ日本高清视频影片www | 日本H无码黄肉动漫后宫 | 精品国偷拍自产在线观看 | 1.学生妹内射视频 | 欧美精品一区二区少妇免费A片 | 欧美乱码卡1卡2卡三卡四卡 | 国产精品免费一级在线观看 | 青青视频观看免费99 | 波多野结衣免费在线播放 | 老司机深夜福利在线观看 | 97色伦| 国产精品免费视频 | 亚洲成人原创 | 亚洲一卡2卡3卡4卡乱码 在线 | 男男BL各种姿势地方PLAY文 | 亚洲精品久久久久一区二区三区 | 欧洲乱码一卡2卡三卡4卡高清 | 人与猪猪 | 希岛爱理aⅴ在线中文字幕 西方毛片 | 日韩精品久久久毛片一区二区 | 欧美黄色精品 | 中文字幕色婷婷在线视频 | 开心色播五月 | 欧美成人在线网站 | 亚洲第二页 | 精品国产91久久久久久久 | 伊人久久大香网 | 香港三级日本三级妇人三级 | 女网址www女影院 | 久青草影院在线观看国产 | 国产鲁鲁视频在线观看免费 | 丰满人妻中文字幕在线观看 | 日本韩国三级 | 国产精品色欲AV亚洲三区软件 | 六月丁香七月婷婷 | 午夜精品区 | 99精品久久 | 天天干一干 | 中文人妻AV久久人妻水蜜桃 | 久久五月天综合网 | 日本H无码黄肉动漫后宫 | 婷婷六月丁香缴 清 | 欧美日韩精品一区二区三区视频在线 | 被工地工人轮着上雯雯 | 好涨太粗进去用力快好深 | 在线观看网址入口2024 | 国产精品毛片在线更新 | 国产精品爱久久久久久久电影 | 九九视频国产 | 精国产品一区二区三区A片 精产国品一二三产品麻豆 金瓶梅2快播 | 国产精品jizzjizz | 96精品国产高清在线看入口 | 婷婷激情综合色五月久久竹菊影视 | 一级毛片在线直接观看 | 欧美高清一区二区三 | 乱码一二三乱码又大又粗 | 青青草a免费线看 | 脱女学小内内摸出水网站免费 | 3d动漫一区| 精品香蕉99久久久久网站 | 国产无码av | 婷婷日日夜夜 | 日本成熟少妇高潮A片 | 成熟丰满毛茸茸 | 天堂成人在线观看 | 俺去也最新网站 | chinese国产乱在线观看 | 欧美一区二区三区免费看 | 欧美片内射欧美美美妇 | 美女脱内衣露出了奶头无马赛克图片 | 日韩午夜欧美精品一二三四区 | 免费无码又爽又黄又刺激网站 | 极品妖艳 | 免费观看久久精品视频 | 黄色三级视频在线观看 | 国产精品自在在线午夜蜜芽tv在线 | 免费又色又爽又黄的视频 | 成人网18免费下 | 新色中色 | 浪妇叫床叫的很浪的小说 | 狼人综合色 | 99精品视频观看 | 国内精品久久久久久不卡影院 | 成人影院wwwwwwwwwww | a免费网站| 国产最新免费高清在线视频 | 天天做天天做天天综合网 | 一级二级毛片 | 国语对白精品视频在线观看 | 伦理片免费秋霞e | 国产美女裸露无遮挡双奶A片游戏 | 最近新韩国日本免费看 | 一本色道久久综合一区 | 久久精品亚洲日本波多野结衣 | 操美女在线视频 | 亚洲欧美一区二区三区四区 | 免费观看欧美成人1314w色 | 国产精品变态重口在线 | 狠狠狠狠狠狠狠狠狠狠 | 四虎精品8848ys一区二区 | 四个人弄我一个要坏掉的 | 国产精品久线观看视频 | 在线毛片一区二区不卡视频 | 免费毛片网站在线观看 | 午夜视频网址 | 日本欧美一区二区三区免费不卡 | 中文字幕亚洲无线码 | 亚洲AV无码午夜国产精品色软件 | 日本三级香港三级人妇 下载 | 一个人看www免费 | 亚洲国产一线二线三线 | 色开心婷婷 | 一区二区人妻精品无码A片 一区二区人妻无码欧美 | 国产午夜精品福利 | 中文字幕人妻熟女在线 | 欧美 日本 亚欧在线观看 | 狠狠干网站 | 国产精品麻豆久久久 | 免费日本在线视频 | 无码一卡二卡三卡四卡 | 色妞干网| 97视频精品全国在线观看 | 狠狠色很很鲁在线视频 | 欧美黄色免费网址 | 久久狼人综合 | 国产一国产一级毛片视频在线 | 日韩免费视频 | 国产麻豆亚洲精品一区二区 | 久久新网址 | 狠狠色噜噜狠狠狠888奇米 | 精品伦理片 | 老湿69| 992tv国产人成在线观看 | 中文字幕日本六区小电影 | 中文字幕久久久久久久系列 | 最近免费更新中文在线观看 | 无遮挡很爽很污很黄的网站 | av天天看| 最近更新2019中文字幕 | 国产人妻精品午夜福利免费不卡 | 一个人看的www视频在线播放 | 欧美黄片 | 欧美最猛黑人猛男无码视频 | 99在线视频精品 | 91色在线观看国产 | 日本又色又爽又黄又免费网站 | 色鬼网站| 狠狠色成人综合网图片区 | 成人免费看黄 | 99久久久国产精品免费牛牛四川 | 欧美阿v高清资源不卡在线播放 | 午夜理论在线观看不卡大地影院 | 91精品国产免费青青碰在线观看 | 漂亮少妇高潮A片XXXX | 成人在线你懂的 | 工口里番全彩全彩无遮挡 | 欧美日韩一二三 | 国产激情视频 | 91久久精品一区二区 | 女人18毛片水真多免费播放 | 九九热在线免费观看 | 欧美一级黄色片 | 久久国产高清波多野结衣 | 在线看国产| 欧美国产日本精品一区二区三区 | 播播成人| 色噜噜狠狠大色综合 | 97一本大道波多野吉衣 | 国产AV亚洲一区精午夜麻豆 | 免费看黄色网址 | 久久精品这里只有精品 | 狠狠干2023| 久久久视频2019| 欧美性猛交一区二区三区精品 | 亚洲欧洲日本无在线码天堂 | 黄色网址在线免费播放 | 国外精品视频在线观看免费 | 337P粉嫩大胆色噜噜嚕 | 学生妹无套内射正在播放 | 中文字幕永久 | 欧洲色妇| 日韩娇小性hd | 免费成人在线观看 | 劲爆欧美精品13页 | 国产女人乱人伦精品一区二区 | 最近免费字幕中文大全视频 | 日韩视频在线播放 | 亚洲深夜视频 | 久久免费看少妇高潮A片JA | 樱花草视频在线观看社区WWW | 精品国产a| 打开美人妻的两腿 | 极品美女久久久久久久久久久 | 欧美a级v片在线观看一区 | 毛片A级毛片免费观看品善网 | XL上司带翻译不打马赛 | 好硬啊进得太深了A片无码视频 | 国产传媒免费看A片 | 51社区精品视频 | 中文字幕精品视频在线 | 国产三级日本三级韩国三级在线观看 | 逍遥五月天 | 欧美视频在线观看免费观 | 亚洲国产免费 | 国产在线综合色视频 | 亚州av| 欧美性生交XXXXX无码久久久 | 热99re久久国超精品首页 | 国产综合成人亚洲区 | 免费国产a国产片高清下载app | 91po国产在线高清福利 | 99re国产 | 最近更新2019中文字幕免费 | 麻豆AV久久无码精品九九 | 少妇2做爰A片 | 日本xxx在线观看免费播放 | 玩弄丰满奶水的女邻居 | 国产精品人妻无码久久久免费看 | 美景之屋4免费观看高清 | 亚洲精品国产专区91在线 | 天天谢天天干 | 无码中文字幕免费一区二区蜜桃 | 亚洲人成影院在线播放 | 国产一级毛片潘金莲的奶头 | 一本久道综合在线无码 | 福利视频欧美 | 国产婷婷午夜精品无码A片 国产婷婷色综合AV蜜臀AV | 青青草a免费线看 | 久久综合久久综合久久 | 国产精品国产三级国产专 | 午理论理影片被窝 | 日韩欧美一区二区无码免费 | 伦理电院网 | 草榴google| 日本三级中文字幕 | 色qvod| 免费毛片网 | 99精品久久 | 高清成人综合 | 色狐狸精品网 | 国产深夜福利视频在线 | 香蕉久久一区二区三区啪啪 | 好看的毛片 | 97色伦图片97综合影院 | 小草青青免费影视观看 | 日韩欧美一级 | 古代一女被迫n男文肉辣 | 夜色约爱网站 | 乱肉怀孕系列小说 | 欧美激情性AAAAA片欧美 | 波多野吉衣一区二区三区四区 | 最好看免费视频大全在线观看 | 人妻精品人妻无码一区二区三区 | 少妇被躁爽到高潮无码A片小说 | 少妇被又大又粗又爽A片 | 影音先锋2017av天堂 | 大地影院日本韩国电影免费观看 | 日韩欧美三级视频 | 亚洲AV优女天堂波多野结衣 | 2019中文字幕乱码免费 | 一男一女做爰高潮A片韩剧 一女被多男灌满白浆受孕 一色屋免费精品视频 | 亚洲黄色三级视频 | 亚洲综合色五月久久婷婷 | 妞色网 | 国产在线精品观看免费观看 | 亚洲九九九 | 欧美日韩一区二区三 | 女闺蜜扒开腿让我CAO她 | 欧美黑人性受xxxx精品 | 亚洲欧洲一区二区三区在线 | 中文字幕一区中文亚洲 | 99RE久久爱五月天婷婷 | 99视频在线免费 | 最近免费高清版电影在线观看 | 日本一区二区三区不卡在线看 | 国产内射爽爽大片 | 秋霞伊人网 | 日产学生妹在线观看 | 国色一卡2卡3卡4卡在线新区 | 亚洲qingse中文字幕久久 | 黄页网站在线观看 | 日韩精品视频免费网址 | 欧美另类高清 | 日本资源站 | 国产精品爽黄69天堂A片 | 国产五月婷婷 | 国产视频自拍一区 | 高清无码v视频日本www | J8又粗又硬又大又爽又网站 | 91尤物视频在线观看 | 久久日本精品国产精品 | 欧美精品hdxxxxx | 欧美午夜春性猛交xxxx | 国产国语一级毛片 | 永久国产| 青草网址| 国产一级视频在线观看网站 | 狠狠鲁图片 | 青青青国产精品免费观看 | 成人福利网 | www.亚洲天堂 | 亚洲天堂网在线观看视频 | 欧美又粗又深又猛又爽A片免费看 | 亚洲第一区二区快射影院 | 亚洲金属网 | 一级做a爰片久久毛片武则天 | 香港三级日本三级妇人三级 | 免费高清视频免费观看 | 天天干天天做 | 攻把受做哭边走边肉楼梯PLAY | 国产h视频在线观看免费 | 无码激情做A爰片毛片A片日本 | 成人在线偷拍自拍视频 | 中文字幕人妻A片免费看 | 中文字幕欧美在线 | 国产成人亚洲综合 | 日本理论片午午伦夜理片2024 | 诱人的女邻居BD在线观看 | 亚洲一区综合在线播放 | 一进一出男女啪啪120秒试看 | 黑人巨茎大战俄罗斯白人美女 |