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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cedbusedlg.cpp

?? wince evc 下開發(fā)的可跑在2410上的非常好用的數(shù)據(jù)庫
?? CPP
字號:
// CEDBUseDlg.cpp : implementation file
//

#include "stdafx.h"
#include "CEDBUse.h"
#include "CEDBUseDlg.h"

#include "StudentInputDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CCEDBUseDlg dialog

CCEDBUseDlg::CCEDBUseDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CCEDBUseDlg::IDD, pParent)
{
	//初始化數(shù)據(jù)庫句柄
	m_hDB = 0;
	//將數(shù)據(jù)庫對象標識設(shè)置0
	m_ceOid = 0;     
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CCEDBUseDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCEDBUseDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CCEDBUseDlg, CDialog)
	//{{AFX_MSG_MAP(CCEDBUseDlg)
	ON_BN_CLICKED(IDC_BTNOPEN, OnBtnopen)
	ON_BN_CLICKED(IDC_BTNCLOSE, OnBtnclose)
	ON_BN_CLICKED(IDC_BTNREFRESH, OnBtnrefresh)
	ON_BN_CLICKED(IDC_BTNADD, OnBtnadd)
	ON_BN_CLICKED(IDC_BTNEDIT, OnBtnedit)
	ON_BN_CLICKED(IDC_BTNDELETE, OnBtndelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCEDBUseDlg message handlers

BOOL CCEDBUseDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	CenterWindow(GetDesktopWindow());	// center to the hpc screen

	//設(shè)置學生列表框標題	
	CListCtrl * pListCtrl = (CListCtrl*)GetDlgItem(IDC_LST_STUDENT);

	CRect rt;
    pListCtrl->GetClientRect(&rt);
	pListCtrl->InsertColumn(0,_T("編號"), LVCFMT_LEFT, rt.Width() * 0.2);
    pListCtrl->InsertColumn(1,_T("姓名"), LVCFMT_LEFT, rt.Width() * 0.3);
    pListCtrl->InsertColumn(2, _T("出生日期"), LVCFMT_LEFT, rt.Width() * 0.3);
    pListCtrl->InsertColumn(3, _T("身高"), LVCFMT_LEFT, rt.Width() * 0.2);

	
	return TRUE;  // return TRUE  unless you set the focus to a control
}


//打開數(shù)據(jù)庫
void CCEDBUseDlg::OnBtnopen() 
{
	//1、掛載數(shù)據(jù)庫卷,如果存在則打開,不存在,就新建一個
	if (!CeMountDBVol(&m_ceGuid,DBFILENAME,OPEN_ALWAYS))
	{
		AfxMessageBox(_T("打開或新建數(shù)據(jù)卷失敗"));
		return;
	}

	
	//2、接著打開數(shù)據(jù)庫
	m_hDB = CeOpenDatabaseEx(&m_ceGuid,&m_ceOid,DBTABLENAME,NULL,CEDB_AUTOINCREMENT,NULL);
	if (m_hDB == INVALID_HANDLE_VALUE)
	{
		//3、 //如果數(shù)據(jù)庫不存在,就新建之
		if (GetLastError() == ERROR_FILE_NOT_FOUND) 
		{
			CEDBASEINFO ceDbInfo;

			ceDbInfo.dwFlags = CEDB_VALIDNAME | CEDB_VALIDTYPE | CEDB_VALIDSORTSPEC ;
			wcscpy(ceDbInfo.szDbaseName , DBTABLENAME);
			ceDbInfo.dwDbaseType = 0;
			ceDbInfo.wNumSortOrder = 2 ; //排序字段數(shù)目

			ceDbInfo.rgSortSpecs[0].propid = PID_NO;
			ceDbInfo.rgSortSpecs[0].dwFlags = CEDB_SORT_CASEINSENSITIVE; //升序,且大小寫無關(guān)
			
			ceDbInfo.rgSortSpecs[1].propid = PID_NAME;
			ceDbInfo.rgSortSpecs[1].dwFlags = CEDB_SORT_CASEINSENSITIVE; //升序,且大小寫無關(guān)
			m_ceOid = CeCreateDatabaseEx(&m_ceGuid,&ceDbInfo);
			if (m_ceOid == 0)
			{
				AfxMessageBox(_T("創(chuàng)建數(shù)據(jù)庫失敗"));
				//此處得卸載數(shù)據(jù)庫卷
				if (!CeUnmountDBVol(&m_ceGuid))
				{
					AfxMessageBox(_T("卸載數(shù)據(jù)庫文件卷失敗"));
				}
				return ;
			}
			//4、創(chuàng)建數(shù)據(jù)庫后,應緊接著打開數(shù)據(jù)庫
			m_hDB = CeOpenDatabaseEx(&m_ceGuid,&m_ceOid,DBTABLENAME,NULL,CEDB_AUTOINCREMENT,NULL);
			if (m_hDB == INVALID_HANDLE_VALUE)
			{
				AfxMessageBox(_T("打開數(shù)據(jù)庫失敗"));
				//此處得卸載數(shù)據(jù)庫卷
				if (!CeUnmountDBVol(&m_ceGuid))
				{
					AfxMessageBox(_T("卸載數(shù)據(jù)庫文件卷失敗"));
				}
				return ;
			}
		}
		else
		{
			AfxMessageBox(_T("打開數(shù)據(jù)庫失敗"));
			//此處得卸載數(shù)據(jù)庫卷
			if (!CeUnmountDBVol(&m_ceGuid))
			{
				AfxMessageBox(_T("卸載數(shù)據(jù)庫文件卷失敗"));
			}
			return ;
		}
	}
}

//關(guān)閉數(shù)據(jù)庫
void CCEDBUseDlg::OnBtnclose() 
{
	//1、關(guān)閉數(shù)據(jù)庫
	if (!CloseHandle(m_hDB))
	{
		AfxMessageBox(_T("關(guān)閉數(shù)據(jù)庫失敗"));
		return;
	}
	//2、將數(shù)據(jù)庫卷的數(shù)據(jù)緩沖到永久存儲介質(zhì)上
	if (!CeFlushDBVol(&m_ceGuid))
	{
		AfxMessageBox(_T("緩沖介質(zhì)失敗"));
		return ;
	}
	//3、卸載數(shù)據(jù)庫卷
	if (!CeUnmountDBVol(&m_ceGuid))
	{
		AfxMessageBox(_T("卸載數(shù)據(jù)庫文件卷失敗"));
		return ;
	}
	
}

/*
函數(shù)說明:獲取數(shù)據(jù)庫的記錄數(shù)目
入口參數(shù):pCeGuid : 數(shù)據(jù)庫文件卷標識指針
		  ceOid   : 數(shù)據(jù)庫對象標識
出口參數(shù):(無)
返 回 值:-1 :代表失敗。成功的話,返回實際的記錄數(shù)
*/
int CCEDBUseDlg::GetRecordCount(CEGUID *pCeGuid,CEOID ceOid)
{
	int iCount;
	CEOIDINFO oidinfo;
	if (!CeOidGetInfoEx(pCeGuid,ceOid,&oidinfo))
	{
		AfxMessageBox(_T("獲取信息失敗"));
		return -1;
	}
	iCount = oidinfo.infDatabase.wNumRecords;
	return iCount;
}

//從數(shù)據(jù)庫中獲取所有記錄,并顯示到列表視圖中
void CCEDBUseDlg::OnBtnrefresh() 
{
	CEOID ceOid;
	WORD wProps;
	DWORD dwRecSize;
	PBYTE pBuff;
	PCEPROPVAL pRecord;

	REC_STUDENT * pStudent;
 
	//得到數(shù)據(jù)庫記錄數(shù)
	int iRecordCount = GetRecordCount(&m_ceGuid,m_ceOid);
	DWORD dwIndex;
	//設(shè)置學生列表框標題	
	CListCtrl * pListCtrl = (CListCtrl*)GetDlgItem(IDC_LST_STUDENT);
	pListCtrl->DeleteAllItems();
	for (int k=0;k<iRecordCount;k++)
	{
		//移動記錄指針
		ceOid = CeSeekDatabase(m_hDB,CEDB_SEEK_BEGINNING,k,&dwIndex);

		ASSERT(ceOid !=0);
		pBuff = 0;	
		//讀取所有字段值
		ceOid = CeReadRecordProps(m_hDB,CEDB_ALLOWREALLOC,&wProps,NULL,&(LPBYTE)pBuff,&dwRecSize);
		
		ASSERT(ceOid != 0);
		
		pRecord = (PCEPROPVAL)pBuff;
		pStudent = new REC_STUDENT;
		
		for (int i=0;i<wProps;i++)
		{
			switch(pRecord->propid)
			{
			case PID_NO:
				{
					wcscpy(pStudent->szNo,pRecord->val.lpwstr);
					break;
				}
			case PID_NAME:
				{
					wcscpy(pStudent->szName,pRecord->val.lpwstr);
					break;
				}
			case PID_BIRTHDAY:
				{
					pStudent->ftBirthday = pRecord->val.filetime;
					break;
				}
			case PID_STATURE:
				{
					pStudent->iStature = pRecord->val.lVal;
					break;
				}
			}
			pRecord++;
		}
		LocalFree(pBuff);
		
		//向列表框中添加學生信息
		pListCtrl->InsertItem(k,_T("Test"));
		//添加學生編號
		pListCtrl->SetItemText(k,0,pStudent->szNo);
		//添加學生姓名
		pListCtrl->SetItemText(k,1,pStudent->szName);
		//添加學生生日,此處需要做些轉(zhuǎn)換
		SYSTEMTIME systime;
		FileTimeToSystemTime(&(pStudent->ftBirthday),&systime);
		TCHAR szBirthday[11];
		swprintf(szBirthday,_T("%d-%d-%d"),systime.wYear,systime.wMonth,systime.wDay);
		pListCtrl->SetItemText(k,2,szBirthday);
		//添加學生身高,此處需要將數(shù)字轉(zhuǎn)換成字符串
		TCHAR szStature[5];
		_itow(pStudent->iStature,szStature,10);
		pListCtrl->SetItemText(k,3,szStature);
		delete pStudent;
	}
}

/*
函數(shù)說明:添加一條新記錄
入口參數(shù):stu : 學生數(shù)據(jù)庫表結(jié)構(gòu)
出口參數(shù):(無)
返 回 值:TRUE:添加成功;FALSE:添加失敗
*/
bool CCEDBUseDlg::AddNewStudent(REC_STUDENT stu)
{
	CEOID ceOid;
	CEPROPVAL *pProps;
	pProps = new CEPROPVAL[4];
	//學生學號
	memset(pProps,0,LocalSize(pProps));
	pProps->propid = PID_NO; 
	pProps->val.lpwstr = stu.szNo;
	//學生姓名
	pProps++;
	memset(pProps,0,LocalSize(pProps));
	pProps->propid = PID_NAME ; 
	pProps->val.lpwstr = stu.szName;
	//學生出生日期
	pProps++;
	memset(pProps,0,LocalSize(pProps));
	pProps->propid = PID_BIRTHDAY;
	pProps->val.filetime  = stu.ftBirthday;
	//學生身高
	pProps++;
	memset(pProps,0,LocalSize(pProps));
	pProps->propid = PID_STATURE;
	pProps->val.iVal = stu.iStature;
    
    pProps = pProps -3 ;
	ceOid = CeWriteRecordProps(m_hDB,0,4,pProps);

	if (ceOid == 0)
	{
		return false;
	}
	return true;
}

/*
函數(shù)說明:編輯記錄
入口參數(shù):stu : 學生數(shù)據(jù)庫表結(jié)構(gòu)
		  ceOid : 記錄對象標識
出口參數(shù):(無)
返 回 值:TRUE:編輯成功;FALSE:編輯失敗
*/
bool CCEDBUseDlg::EditStudent(REC_STUDENT stu,CEOID ceOid)
{
	CEOID tmpCeOid;
	CEPROPVAL *pProps;
	pProps = new CEPROPVAL[4];
	//學生學號
	memset(pProps,0,LocalSize(pProps));
	pProps->propid = PID_NO; 
	pProps->val.lpwstr = stu.szNo;
	//學生姓名
	pProps++;
	memset(pProps,0,LocalSize(pProps));
	pProps->propid = PID_NAME ; 
	pProps->val.lpwstr = stu.szName;
	//學生出生日期
	pProps++;
	memset(pProps,0,LocalSize(pProps));
	pProps->propid = PID_BIRTHDAY;
	pProps->val.filetime  = stu.ftBirthday;
	//學生身高
	pProps++;
	memset(pProps,0,LocalSize(pProps));
	pProps->propid = PID_STATURE;
	pProps->val.iVal = stu.iStature;
    
    pProps = pProps -3 ;
	tmpCeOid = CeWriteRecordProps(m_hDB,ceOid,4,pProps);

	if (tmpCeOid == 0)
	{
		return false;
	}
	return true;
}

//添加記錄按鈕單擊實現(xiàn)方法
void CCEDBUseDlg::OnBtnadd() 
{
	REC_STUDENT rec_stu;
	
	CStudentInputDlg inputDlg;
	if (inputDlg.DoModal() == IDOK)
	{
		//得到編號
		wcscpy(rec_stu.szNo,LPCTSTR(inputDlg.m_no));	
		//得到姓名
		wcscpy(rec_stu.szName,LPCTSTR(inputDlg.m_name));
		//得到出生日期
		SYSTEMTIME timeDest;
		inputDlg.m_birthday.GetAsSystemTime(timeDest);
		::SystemTimeToFileTime(&timeDest, &(rec_stu.ftBirthday));
		//得到身高值
		rec_stu.iStature = inputDlg.m_stature;
		AddNewStudent(rec_stu);
	}
	//添加完成之后,調(diào)用刷新按鈕單擊方法
	OnBtnrefresh();
}

//編輯記錄按鈕單擊實現(xiàn)方法
void CCEDBUseDlg::OnBtnedit() 
{
	REC_STUDENT rec_stu;
	CEOID ceOid;
	PBYTE pBuff;
	WORD wProps;
	DWORD dwRecSize;
	PCEPROPVAL pRecord;
	REC_STUDENT *pStudent;


	//設(shè)置學生列表框標題	
	CListCtrl * pListCtrl = (CListCtrl*)GetDlgItem(IDC_LST_STUDENT);
	int iItemIndex = pListCtrl->GetNextItem(-1,LVNI_SELECTED);
	ASSERT(iItemIndex !=-1);

	DWORD dwIndex;
	ceOid = CeSeekDatabase(m_hDB,CEDB_SEEK_BEGINNING,iItemIndex,&dwIndex);
	ASSERT(ceOid !=0);

	pBuff = 0;	
	//讀取所有記錄值
	ceOid = CeReadRecordProps(m_hDB,CEDB_ALLOWREALLOC,&wProps,NULL,&(LPBYTE)pBuff,&dwRecSize);
	
	ASSERT(ceOid != 0);
	
	pRecord = (PCEPROPVAL)pBuff;
	pStudent = new REC_STUDENT;
	
	for (int i=0;i<wProps;i++)
	{
		switch(pRecord->propid)
		{
		case PID_NO:
			{
				wcscpy(pStudent->szNo,pRecord->val.lpwstr);
				break;
			}
		case PID_NAME:
			{
				wcscpy(pStudent->szName,pRecord->val.lpwstr);
				break;
			}
		case PID_BIRTHDAY:
			{
				pStudent->ftBirthday = pRecord->val.filetime;
				break;
			}
		case PID_STATURE:
			{
				pStudent->iStature = pRecord->val.lVal;
				break;
			}
		}
		pRecord++;
	}
	LocalFree(pBuff);	

	CStudentInputDlg inputDlg;
	//同步編輯對話框輸入框值
	inputDlg.m_no = pStudent->szNo;
	inputDlg.m_name = pStudent->szName;
	SYSTEMTIME tmpTime;
	FileTimeToSystemTime(&(pStudent->ftBirthday),&tmpTime);
	inputDlg.m_birthday = tmpTime;
	inputDlg.m_stature = pStudent->iStature;
	
	delete pStudent;
	if (inputDlg.DoModal() == IDOK)
	{
		//得到編號
		wcscpy(rec_stu.szNo,LPCTSTR(inputDlg.m_no));	
		//得到姓名
		wcscpy(rec_stu.szName,LPCTSTR(inputDlg.m_name));
		//得到出生日期
		SYSTEMTIME timeDest;
		inputDlg.m_birthday.GetAsSystemTime(timeDest);
		::SystemTimeToFileTime(&timeDest, &(rec_stu.ftBirthday));
		//得到身高值
		rec_stu.iStature = inputDlg.m_stature;
		EditStudent(rec_stu,ceOid);
	}
	//編輯完成之后,調(diào)用刷新按鈕單擊方法
	OnBtnrefresh();	
}

//刪除當前記錄
void CCEDBUseDlg::OnBtndelete() 
{
	//設(shè)置學生列表框標題	
	CListCtrl * pListCtrl = (CListCtrl*)GetDlgItem(IDC_LST_STUDENT);
	int iItemIndex = pListCtrl->GetNextItem(-1,LVNI_SELECTED);
	ASSERT(iItemIndex !=-1);

	DWORD dwIndex;
	CEOID ceOid;
	ceOid = CeSeekDatabase(m_hDB,CEDB_SEEK_BEGINNING,iItemIndex,&dwIndex);
	ASSERT(ceOid !=0 );
	if (!CeDeleteRecord(m_hDB,ceOid))
	{
		AfxMessageBox(_T("刪除失敗"));
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲va中文字幕| 91麻豆精品国产91久久久更新时间| 狠狠色丁香久久婷婷综| 国产高清一区日本| 91视频免费播放| 3d动漫精品啪啪一区二区竹菊| 亚洲综合无码一区二区| 激情图片小说一区| 久久综合资源网| 亚洲精品欧美综合四区| 国产在线一区二区综合免费视频| 久久久亚洲国产美女国产盗摄| 亚洲综合精品自拍| 日韩一级片在线观看| 亚洲欧美电影院| 国产乱码字幕精品高清av| 精品国产电影一区二区| 一区二区三区在线视频免费观看| 高潮精品一区videoshd| 91精品国产麻豆| 亚洲va天堂va国产va久| 精品播放一区二区| fc2成人免费人成在线观看播放 | 国产精品国产三级国产| 免费观看日韩电影| 在线观看日韩精品| 亚洲国产精华液网站w| 日本不卡一二三| 欧美激情在线一区二区三区| 欧美日韩在线电影| 亚洲日本一区二区三区| av亚洲精华国产精华精| 石原莉奈一区二区三区在线观看| 欧美在线一区二区| 另类人妖一区二区av| 日韩免费看的电影| 麻豆精品在线播放| 精品粉嫩超白一线天av| 99久久伊人精品| 国产欧美综合在线观看第十页| 国产麻豆日韩欧美久久| 欧美韩国日本综合| 欧美一区二区三区四区高清| 91网上在线视频| 国产在线一区二区| 日本人妖一区二区| 精品国产sm最大网站| 97se狠狠狠综合亚洲狠狠| 蜜臀av亚洲一区中文字幕| |精品福利一区二区三区| 91啪在线观看| 大美女一区二区三区| 亚洲免费av网站| 26uuu国产一区二区三区| 9191成人精品久久| 欧美日韩日日摸| 日本韩国欧美在线| 秋霞影院一区二区| 亚洲综合免费观看高清完整版| 中文字幕乱码久久午夜不卡| 精品国产乱码久久久久久蜜臀 | 在线观看日韩精品| 91免费精品国自产拍在线不卡| 国产精品一区二区x88av| 免费高清在线一区| 日本在线不卡视频| 日韩中文字幕1| 偷拍日韩校园综合在线| 久久日韩精品一区二区五区| 欧美精品tushy高清| 成人免费视频一区二区| 国产九色精品成人porny| 美国av一区二区| 久久av资源站| 国产在线视视频有精品| 韩国女主播一区二区三区| 久久国产精品无码网站| 久久97超碰国产精品超碰| 一区二区三区加勒比av| 亚洲欧洲www| 亚洲欧美国产毛片在线| 亚洲一区二区三区不卡国产欧美| 亚洲综合av网| 日韩国产欧美在线视频| 久久精品久久久精品美女| 国产在线一区观看| 成+人+亚洲+综合天堂| 蜜臀av在线播放一区二区三区| 青青草原综合久久大伊人精品| 美女视频免费一区| 国产成人免费视频一区| 成人丝袜高跟foot| 色婷婷亚洲精品| 国v精品久久久网| 99综合电影在线视频| 91碰在线视频| 制服丝袜中文字幕亚洲| 2021国产精品久久精品| 国产精品国产成人国产三级 | 成人黄色小视频| 色综合久久88色综合天天6 | 日韩视频中午一区| 2021国产精品久久精品| 综合色天天鬼久久鬼色| 五月天久久比比资源色| 激情六月婷婷综合| 91亚洲午夜精品久久久久久| 91精品国产一区二区人妖| 国产午夜精品一区二区三区嫩草| 日韩免费高清电影| 国产喷白浆一区二区三区| 亚洲摸摸操操av| 男男gaygay亚洲| 不卡av免费在线观看| 欧美精品99久久久**| 久久久国产精品不卡| 亚洲精品久久久蜜桃| 加勒比av一区二区| 色婷婷激情久久| www国产成人免费观看视频 深夜成人网| 亚洲欧洲av在线| 久久97超碰色| 欧美日韩一区小说| 国产精品毛片a∨一区二区三区| 国产色91在线| 午夜精品一区在线观看| 高清在线不卡av| 欧美日韩国产综合视频在线观看 | 天堂午夜影视日韩欧美一区二区| 精品一区二区三区的国产在线播放| 91小宝寻花一区二区三区| 精品国产一区二区三区久久久蜜月| 国产日韩亚洲欧美综合| 日韩电影在线一区| 91麻豆免费看片| 国产亚洲一本大道中文在线| 天天av天天翘天天综合网| 国产91精品露脸国语对白| 日韩美女主播在线视频一区二区三区| 中文字幕色av一区二区三区| 精品制服美女丁香| 在线不卡一区二区| 亚洲精品成人精品456| 北条麻妃一区二区三区| 精品乱人伦小说| 中文字幕在线一区免费| 久久www免费人成看片高清| 在线观看三级视频欧美| 91精品欧美综合在线观看最新| 国产亚洲综合在线| 久久精品免费观看| 欧美日韩一区二区在线视频| 亚洲三级电影全部在线观看高清| 国产成人精品影视| 久久夜色精品国产噜噜av| 青青草成人在线观看| 欧美精品日韩一本| 午夜精品久久久久久久久久久 | 亚洲免费三区一区二区| 国产成人综合亚洲91猫咪| 欧美刺激午夜性久久久久久久| 午夜精品久久久久影视| 欧美日韩国产系列| 亚洲手机成人高清视频| 成人h精品动漫一区二区三区| 精品免费日韩av| 国产综合一区二区| 国产亚洲一本大道中文在线| 国产成人啪免费观看软件| 久久久噜噜噜久久人人看| 国产电影一区在线| 久久久久国色av免费看影院| 国产精品综合av一区二区国产馆| 2020国产精品| 成人黄色一级视频| 一区二区三区不卡在线观看 | 亚洲图片欧美视频| 久热成人在线视频| 精品少妇一区二区三区日产乱码| 久久91精品久久久久久秒播| 久久婷婷国产综合精品青草 | 精一区二区三区| 精品国产一区二区精华| 国产精品99久久久久| 中文字幕第一区| 在线影视一区二区三区| 日韩专区欧美专区| 久久影音资源网| 成人av免费在线| 亚洲国产一二三| 久久免费的精品国产v∧| 成人三级在线视频| 亚洲国产精品一区二区www在线| 欧美日韩久久久一区| 精品中文av资源站在线观看| 中文字幕欧美日本乱码一线二线| 91香蕉视频黄| 麻豆精品一区二区三区| 国产精品超碰97尤物18| 欧美午夜电影一区|