亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? adoadrbookview.cpp

?? 數據庫課件。適用于培訓、教學。PPT格式。
?? CPP
字號:
// AdoAdrBookView.cpp : implementation of the CAdoAdrBookView class
/*
This file was created by Haimag (haimag@263.net).
This file is distributed "as is", e.g. there are no warranties 
and obligations and you could use it in your applications on your
own risk. 
Your comments and questions are welcome.
*/

#include "stdafx.h"
#include "AdoAdrBook.h"

#include "AdoAdrBookDoc.h"
#include "AdoAdrBookView.h"
#include "UserSheet.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAdoAdrBookView

IMPLEMENT_DYNCREATE(CAdoAdrBookView, CListView)

BEGIN_MESSAGE_MAP(CAdoAdrBookView, CListView)
	//{{AFX_MSG_MAP(CAdoAdrBookView)
	ON_COMMAND(ID_DELETE_RECORD, OnDeleteRecord)
	ON_UPDATE_COMMAND_UI(ID_DELETE_RECORD, OnUpdateDeleteRecord)
	ON_COMMAND(ID_UPDATA_RECORD, OnUpdataRecord)
	ON_UPDATE_COMMAND_UI(ID_UPDATA_RECORD, OnUpdateUpdataRecord)
	ON_WM_LBUTTONDBLCLK()
	ON_COMMAND(ID_REFRASH_RECORD, OnRefrashRecord)
	ON_COMMAND(ID_NEW_RECORD, OnNewRecord)
	ON_WM_RBUTTONDOWN()
	ON_COMMAND(ID_POP_DELETE, OnPopDelete)
	ON_COMMAND(ID_POP_UPDATA, OnPopUpdata)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CListView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CListView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAdoAdrBookView construction/destruction

CString CAdoAdrBookView::m_ColumnLabelStr [] = 
{
	"Name",
	"Address",
	"EmailAddress",
	"WorkPhone",
	"HomePhone",
};
CAdoAdrBookView::CAdoAdrBookView()
{
	// TODO: add construction code here
	m_pUserSet.CreateInstance(__uuidof(Recordset));

}

CAdoAdrBookView::~CAdoAdrBookView()
{
	if(m_pImageList!=NULL) delete m_pImageList;
}

BOOL CAdoAdrBookView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
		cs.style |= LVS_REPORT     |
			 LVS_SINGLESEL     |
			 LVS_SHOWSELALWAYS |
			 LVS_ICON          ;

	return CListView::PreCreateWindow(cs);

	return CListView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CAdoAdrBookView drawing

void CAdoAdrBookView::OnDraw(CDC* pDC)
{
	CAdoAdrBookDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

void CAdoAdrBookView::OnInitialUpdate()
{
	CListView::OnInitialUpdate();

    CAdoAdrBookDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);



	CListCtrl	&lc	= GetListCtrl();
	int Column;
	LV_COLUMN		LVColumn;		
	
	DWORD dwStyle = ListView_GetExtendedListViewStyle(GetListCtrl());
	//Add the full row select and grid line style to the existing extended styles
	dwStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES |
				LVS_EX_HEADERDRAGDROP | LVS_EX_TRACKSELECT;
	ListView_SetExtendedListViewStyle (GetListCtrl(),dwStyle);


	lc.DeleteAllItems ();// regular cleanup

	m_pImageList = new CImageList();
	m_pImageList->Create(IDB_BITMAP2, 16, 1, RGB(0,0,0));
	GetListCtrl().SetImageList(m_pImageList, LVSIL_SMALL);

	LVColumn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;

	{
		for (Column = 0; (Column < 5); Column++)
		{
			CString		HeaderString;
		
			// fill header data
			LVColumn.iSubItem	= Column;
			LVColumn.pszText	= (LPTSTR) (LPCTSTR)m_ColumnLabelStr[Column];
			LVColumn.cx			= 120;
			LVColumn.fmt		= LVCFMT_LEFT;
			lc.InsertColumn (Column, &LVColumn);
		}
	}
	pDoc->UpdateAllViews(NULL);



}

/////////////////////////////////////////////////////////////////////////////
// CAdoAdrBookView printing

BOOL CAdoAdrBookView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CAdoAdrBookView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CAdoAdrBookView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CAdoAdrBookView diagnostics

#ifdef _DEBUG
void CAdoAdrBookView::AssertValid() const
{
	CListView::AssertValid();
}

void CAdoAdrBookView::Dump(CDumpContext& dc) const
{
	CListView::Dump(dc);
}

CAdoAdrBookDoc* CAdoAdrBookView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAdoAdrBookDoc)));
	return (CAdoAdrBookDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CAdoAdrBookView message handlers
extern CAdoAdrBookApp theApp;
void CAdoAdrBookView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) 
{ 
	CListCtrl	&lc	= GetListCtrl();

	lc.DeleteAllItems ();
	try 
	{
		int index=0;
		CString sql = "select * from Data";
		m_pUserSet->Open("select * from Data",
			theApp.m_pConnection.GetInterfacePtr(),
			adOpenDynamic,
			adLockOptimistic,
			adCmdText);
		while (!m_pUserSet->adoEOF)
		{
			m_pFieldsPtr = m_pUserSet->Fields;
			m_pFieldPtr   = m_pFieldsPtr->Item["NAME"];
		  	CString str="";
			if( m_pFieldPtr->Value.vt==VT_NULL ) str="";
			else str.Format( (char *)_bstr_t(m_pFieldPtr->Value) );
			int itemIndex = lc.InsertItem(LVIF_TEXT | LVIF_PARAM, index, str, 0, 0, 0, 0);

			int SubitemIndex;
			for(SubitemIndex=1;SubitemIndex<5;SubitemIndex++)
			{
				m_pFieldPtr   = m_pFieldsPtr->Item[_variant_t(m_ColumnLabelStr[SubitemIndex])];
				if( m_pFieldPtr->Value.vt==VT_NULL ) str="";
			    else str.Format( (char *)_bstr_t(m_pFieldPtr->Value) );			    
				lc.SetItem(itemIndex,SubitemIndex,LVIF_TEXT, str , 0, 0, 0, 0);
			}   
			
			m_pUserSet->MoveNext();
			index++;
 
		}
		m_pUserSet->Close();

	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
	catch(...)
	{
		AfxMessageBox("訪問數據庫服務器時發生異常.\n請與系統管理員聯系,謝謝使用.");
		return;
	}
}

void CAdoAdrBookView::OnDeleteRecord() 
{
	// TODO: Add your command handler code here
	CListCtrl&	lc = GetListCtrl ();
	int nItem = lc.GetNextItem (-1, LVNI_SELECTED);
	if(nItem==-1) 
	{
		AfxMessageBox("請選擇要刪除的紀錄");
		return ;
	}

	try
	{
		CString sql = "Select * from data where Name = " ;
		CString str = lc.GetItemText(nItem, 0);
		sql +="'";
		sql +=str;
		sql+= "'";
		if ( (AfxMessageBox("要刪除: " +
	    	str+"嗎?\n該刪除不可恢復!", 
			MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2)) == IDYES ) 
		{
			m_pUserSet->Open((_variant_t)sql,
			    theApp.m_pConnection.GetInterfacePtr(),
			    adOpenDynamic,
			    adLockOptimistic,
			    adCmdText);

			m_pUserSet->Delete(adAffectCurrent);
			m_pUserSet->Update();
			m_pUserSet->Close();
			lc.DeleteItem(nItem);
		}
		
	}

	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
	catch(...)
	{
		AfxMessageBox("訪問數據庫服務器時發生異常.\n請與系統管理員聯系,謝謝使用.");
		return;
	}

}

void CAdoAdrBookView::OnUpdateDeleteRecord(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	CListCtrl&	lc		= GetListCtrl();
	int nItem = lc.GetNextItem (-1, LVNI_SELECTED);
	if (nItem == -1) pCmdUI->Enable(0);
}

void CAdoAdrBookView::OnUpdataRecord() 
{
	CListCtrl&	lc = GetListCtrl ();
	
	int nItem = lc.GetNextItem(-1,LVNI_SELECTED);
	if(nItem==-1) 
	{
		AfxMessageBox("請選擇要更新的紀錄");
		return ;
	}

	CUserSheet sheet("個人資料") ;

	CString  sql = "select * from Data where Name =";    
	CString   str =lc.GetItemText(nItem,0);
	sql +="'";
	sql +=str;
	sql+= "'";
  
	try
	{
		m_pUserSet->Open((_variant_t)sql,
			    theApp.m_pConnection.GetInterfacePtr(),
			    adOpenDynamic,
			    adLockOptimistic,
			    adCmdText);
		m_pFieldsPtr = m_pUserSet->Fields;

		m_pFieldPtr   = m_pFieldsPtr->Item["NAME"];		
		if( m_pFieldPtr->Value.vt==VT_NULL ) str="";
		else str.Format( (char *)_bstr_t(m_pFieldPtr->Value) );
		sheet.m_UserPage1.m_name = str;

		m_pFieldPtr   = m_pFieldsPtr->Item["Address"];		
		if( m_pFieldPtr->Value.vt==VT_NULL ) str="";
		else str.Format( (char *)_bstr_t(m_pFieldPtr->Value) );
		sheet.m_UserPage1.m_address = str;

		m_pFieldPtr   = m_pFieldsPtr->Item["HomePhone"];		
		if( m_pFieldPtr->Value.vt==VT_NULL ) str="";
		else str.Format( (char *)_bstr_t(m_pFieldPtr->Value) );
		sheet.m_UserPage1.m_homePhone = str;

		m_pFieldPtr   = m_pFieldsPtr->Item["MobilePhone"];		
		if( m_pFieldPtr->Value.vt==VT_NULL ) str="";
		else str.Format( (char *)_bstr_t(m_pFieldPtr->Value) );
		sheet.m_UserPage1.m_mobilePhone = str;

		m_pFieldPtr   = m_pFieldsPtr->Item["workphone"];		
		if( m_pFieldPtr->Value.vt==VT_NULL ) str="";
		else str.Format( (char *)_bstr_t(m_pFieldPtr->Value) );
		sheet.m_UserPage1.m_workPhone = str;

		m_pFieldPtr   = m_pFieldsPtr->Item["emailaddress"];		
		if( m_pFieldPtr->Value.vt==VT_NULL ) str="";
		else str.Format( (char *)_bstr_t(m_pFieldPtr->Value) );
		sheet.m_UserPage1.m_email = str;

		m_pFieldPtr   = m_pFieldsPtr->Item["Notes"];		
		if( m_pFieldPtr->Value.vt==VT_NULL ) str="";
		else str.Format( (char *)_bstr_t(m_pFieldPtr->Value) );
		sheet.m_UserPage2.m_notes = str;

		if(sheet.DoModal()==IDOK)
		{
			m_pFieldPtr   = m_pFieldsPtr->Item["NAME"];
			str = sheet.m_UserPage1.m_name;
			if(str.IsEmpty()) str = " ";
			m_pFieldPtr->Value = (_variant_t)str;
            
		    m_pFieldPtr   = m_pFieldsPtr->Item["workphone"];	
			str = sheet.m_UserPage1.m_workPhone;
			if(str.IsEmpty()) str = " ";
			m_pFieldPtr->Value = (_variant_t)str;

			m_pFieldPtr   = m_pFieldsPtr->Item["Address"];	
			str = sheet.m_UserPage1.m_address;
			if(str.IsEmpty()) str = " ";
			m_pFieldPtr->Value = (_variant_t)str;

			m_pFieldPtr   = m_pFieldsPtr->Item["emailAddress"];	
			str = sheet.m_UserPage1.m_email;
			if(str.IsEmpty()) str = " ";
			m_pFieldPtr->Value = (_variant_t)str;

			m_pFieldPtr   = m_pFieldsPtr->Item["mobilephone"];	
			str = sheet.m_UserPage1.m_mobilePhone;
			if(str.IsEmpty()) str = " ";
			m_pFieldPtr->Value = (_variant_t)str;

			m_pFieldPtr   = m_pFieldsPtr->Item["homephone"];	
			str = sheet.m_UserPage1.m_homePhone;
			if(str.IsEmpty()) str = " ";
			m_pFieldPtr->Value = (_variant_t)str;

			m_pFieldPtr   = m_pFieldsPtr->Item["Notes"];	
			str = sheet.m_UserPage2.m_notes;
			if(str.IsEmpty()) str = " ";
			m_pFieldPtr->Value = (_variant_t)str;
  
			m_pUserSet->Update();
			m_pUserSet->Close();	

			GetDocument()->UpdateAllViews(NULL);
		} 
		else
			m_pUserSet->Close();

	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
	catch(...)
	{
		AfxMessageBox("訪問數據庫服務器時發生異常.\n請與系統管理員聯系,謝謝使用.");
		return;
	}
	


}

void CAdoAdrBookView::OnUpdateUpdataRecord(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	CListCtrl&	lc = GetListCtrl ();
	int nItem = lc.GetNextItem (-1, LVNI_SELECTED);
	if (nItem == -1) pCmdUI->Enable(0);
}

void CAdoAdrBookView::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	OnUpdataRecord() ;
	CListView::OnLButtonDblClk(nFlags, point);
}

void CAdoAdrBookView::OnRefrashRecord() 
{
	// TODO: Add your command handler code here
	GetDocument()->UpdateAllViews(NULL);	
}

void CAdoAdrBookView::OnNewRecord() 
{
	// TODO: Add your command handler code here
	CUserSheet sheet("添加記錄");
	CListCtrl&	lc = GetListCtrl ();

	if(sheet.DoModal()!=IDOK) return ;
	try
	{	
		CString sql = "select * from data where Name =";
		CString str = "'" + sheet.m_UserPage1.m_name +"'";
		sql += str;

		m_pUserSet->Open((_variant_t)sql,
			    theApp.m_pConnection.GetInterfacePtr(),
			    adOpenDynamic,
			    adLockOptimistic,
			    adCmdText);
		if(!m_pUserSet->adoEOF)
		{
			m_pUserSet->Close();
			AfxMessageBox("此姓名已存在");
			return ;
		}
		m_pUserSet->Close();
		
		m_pUserSet->Open("select * from data",
			    theApp.m_pConnection.GetInterfacePtr(),
			    adOpenDynamic,
			    adLockOptimistic,
			    adCmdText);
		m_pFieldsPtr = m_pUserSet->Fields;
		m_pUserSet->AddNew();
		{		
			m_pFieldPtr   = m_pFieldsPtr->Item["NAME"];
			str = sheet.m_UserPage1.m_name;
			if(str.IsEmpty()) str = " ";
			m_pFieldPtr->Value = (_variant_t)str;
            
		    m_pFieldPtr   = m_pFieldsPtr->Item["workphone"];	
			str = sheet.m_UserPage1.m_workPhone;
			if(str.IsEmpty()) str = " ";
			m_pFieldPtr->Value = (_variant_t)str;

			m_pFieldPtr   = m_pFieldsPtr->Item["Address"];	
			str = sheet.m_UserPage1.m_address;
			if(str.IsEmpty()) str = " ";
			m_pFieldPtr->Value = (_variant_t)str;

			m_pFieldPtr   = m_pFieldsPtr->Item["emailAddress"];	
			str = sheet.m_UserPage1.m_email;
			if(str.IsEmpty()) str = " ";
			m_pFieldPtr->Value = (_variant_t)str;

			m_pFieldPtr   = m_pFieldsPtr->Item["mobilephone"];	
			str = sheet.m_UserPage1.m_mobilePhone;
			if(str.IsEmpty()) str = " ";
			m_pFieldPtr->Value = (_variant_t)str;

			m_pFieldPtr   = m_pFieldsPtr->Item["homephone"];	
			str = sheet.m_UserPage1.m_homePhone;
			if(str.IsEmpty()) str = " ";
			m_pFieldPtr->Value = (_variant_t)str;

			m_pFieldPtr   = m_pFieldsPtr->Item["Notes"];	
			str = sheet.m_UserPage2.m_notes;
			if(str.IsEmpty()) str = " ";
			m_pFieldPtr->Value = (_variant_t)str;
		}
		m_pUserSet->Update();
		m_pUserSet->Close();
		
		GetDocument()->UpdateAllViews(NULL);


	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
	catch(...)
	{
		AfxMessageBox("訪問數據庫服務器時發生異常.\n請與系統管理員聯系,謝謝使用.");
		return;
	}

}

void CAdoAdrBookView::OnRButtonDown(UINT nFlags, CPoint point) 
{
	CMenu PopMenu;
	CMenu *pMenu;
	CPoint pt;
	pt= point ;

	PopMenu.LoadMenu(IDR_POP_MENU);
	ClientToScreen (&pt);
			// show the menu (returns, when menu is closed again!)
	pMenu = PopMenu.GetSubMenu (0);
	pMenu->TrackPopupMenu (TPM_LEFTALIGN | TPM_RIGHTBUTTON,
				pt.x, pt.y, this);
	
	//CListView::OnRButtonDown(nFlags, point);
}

void CAdoAdrBookView::OnPopDelete() 
{
	// TODO: Add your command handler code here
	OnDeleteRecord() ;
}

void CAdoAdrBookView::OnPopUpdata() 
{
	// TODO: Add your command handler code here
	OnUpdataRecord();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品不卡一区| 丰满少妇久久久久久久| 国产一区二区电影| 日本韩国一区二区三区视频| 精品国产伦一区二区三区观看体验 | 亚洲电影中文字幕在线观看| 国产伦精品一区二区三区视频青涩 | 国产精品看片你懂得| 免费观看在线色综合| 欧美中文字幕一区二区三区 | 成人免费高清在线| 欧美大片在线观看一区| 亚洲福利电影网| 欧美tickling网站挠脚心| 一片黄亚洲嫩模| 91视频在线观看免费| 国产调教视频一区| 黄页视频在线91| 精品捆绑美女sm三区| 日日摸夜夜添夜夜添亚洲女人| 色狠狠综合天天综合综合| 亚洲免费在线看| 91色视频在线| 亚洲人123区| 91福利社在线观看| 亚洲精品第1页| 欧美在线免费观看视频| 亚洲一区二区精品视频| 欧美在线色视频| 亚洲h精品动漫在线观看| 欧美视频三区在线播放| 亚洲成人一区在线| 在线电影国产精品| 捆绑紧缚一区二区三区视频| 日韩视频不卡中文| 国产一区二区主播在线| 久久九九全国免费| 97精品国产露脸对白| 一区二区在线免费观看| 欧美日免费三级在线| 视频一区视频二区中文| 日韩精品一区二区三区老鸭窝| 久久99九九99精品| 国产午夜亚洲精品午夜鲁丝片| 岛国av在线一区| 亚洲精品日韩一| 欧美日韩卡一卡二| 国精产品一区一区三区mba视频| 国产亚洲一二三区| 日本久久精品电影| 全部av―极品视觉盛宴亚洲| 26uuu亚洲综合色| 一本一道波多野结衣一区二区| 亚洲电影中文字幕在线观看| 一区二区三区四区乱视频| 欧美日韩一区在线| 国产专区综合网| 成人欧美一区二区三区白人 | av不卡在线播放| 亚洲成av人影院在线观看网| 久久综合成人精品亚洲另类欧美| 成人高清视频在线| 日韩综合小视频| 国产视频亚洲色图| 欧美日韩一区二区三区不卡| 极品尤物av久久免费看| 最新成人av在线| 日韩午夜精品电影| 99久久久国产精品免费蜜臀| 日本特黄久久久高潮| 中文字幕成人网| 日韩欧美第一区| 91蝌蚪国产九色| 国产乱人伦偷精品视频免下载| 亚洲欧美一区二区三区久本道91| 日韩美女视频在线| 在线视频你懂得一区二区三区| 精品伊人久久久久7777人| 亚洲精品五月天| 久久久久久一级片| 日韩午夜在线影院| 91麻豆精品视频| 国产精品一区在线观看你懂的| 午夜精品在线视频一区| 亚洲三级久久久| 国产亚洲精品7777| 日韩精品一区国产麻豆| 欧美午夜影院一区| 99久久久免费精品国产一区二区| 国产在线视频不卡二| 午夜精品在线视频一区| 亚洲精选视频在线| 中文字幕在线不卡一区 | 亚洲欧洲精品成人久久奇米网| 日韩一级欧美一级| 欧美日韩国产高清一区二区三区 | 精品美女在线观看| 91精品国产乱| 欧美日韩亚洲综合在线| 色婷婷综合久久久| 91蝌蚪porny| 99精品久久久久久| 波多野结衣精品在线| 国产成人av电影在线观看| 久久精品国产精品青草| 开心九九激情九九欧美日韩精美视频电影 | 美女久久久精品| 日韩综合在线视频| 奇米影视一区二区三区| 图片区日韩欧美亚洲| 亚洲大片免费看| 婷婷成人激情在线网| 一区二区三区在线视频观看58| 国产精品天美传媒沈樵| 亚洲国产精品t66y| 国产精品久久久久久久久免费樱桃| 国产三级精品在线| 国产欧美视频一区二区| 亚洲欧洲日韩女同| 亚洲精品成人a在线观看| 亚洲色图一区二区三区| 亚洲精选在线视频| 午夜免费欧美电影| 老司机午夜精品| 国产一区二区0| 精品国产乱码久久久久久免费| 日韩精品一区二区三区视频在线观看 | 亚洲黄色av一区| 亚洲一区二区三区三| 日韩在线a电影| 极品少妇一区二区| av电影在线观看一区| 在线观看一区二区视频| 欧美一区二区日韩一区二区| 欧美成人福利视频| 国产精品久久久久四虎| 亚洲国产精品天堂| 激情伊人五月天久久综合| 丁香啪啪综合成人亚洲小说 | 色综合久久99| 69精品人人人人| 久久女同互慰一区二区三区| 国产精品丝袜在线| 午夜精品一区二区三区三上悠亚| 久久精品国产亚洲一区二区三区| 成人一区在线观看| 欧美亚州韩日在线看免费版国语版| 亚洲天堂福利av| 无吗不卡中文字幕| 国产精品一区二区视频| 欧美影院一区二区| 久久综合五月天婷婷伊人| 亚洲激情欧美激情| 国产在线播精品第三| 日本韩国欧美一区| 欧美成人猛片aaaaaaa| 亚洲久草在线视频| 国产乱码精品一区二区三区av| 日本黄色一区二区| 国产无一区二区| 日韩成人伦理电影在线观看| 成人av在线播放网址| 欧美一级夜夜爽| 亚洲激情网站免费观看| 国产jizzjizz一区二区| 欧美一区二区私人影院日本| 欧美国产日韩亚洲一区| 麻豆成人在线观看| 欧美色大人视频| 综合分类小说区另类春色亚洲小说欧美| 日韩中文字幕不卡| 在线免费亚洲电影| 国产精品视频第一区| 国内一区二区在线| 91精品国产91热久久久做人人| 激情文学综合丁香| 555夜色666亚洲国产免| 一区二区三区自拍| 成人激情免费视频| 久久无码av三级| 久久机这里只有精品| 在线播放中文字幕一区| 亚洲乱码国产乱码精品精98午夜| 成人久久视频在线观看| 久久久久久久久久久黄色| 欧美aⅴ一区二区三区视频| 欧美少妇性性性| 亚洲欧美一区二区三区国产精品| 成人听书哪个软件好| 欧美极品xxx| 懂色av中文一区二区三区| 久久九九99视频| 国产福利91精品一区二区三区| 久久综合五月天婷婷伊人| 激情综合五月天| 久久综合九色综合97婷婷| 精品在线观看免费| 精品国产乱子伦一区| 国产一区二区在线观看免费| 欧美大片在线观看一区|