📄 employesdlg.cpp
字号:
// EmployesDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Practical.h"
#include "EmployesDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern _ConnectionPtr m_pConnection; //连接对象指针
extern _RecordsetPtr m_pRecordset; //记录集对象指针
/////////////////////////////////////////////////////////////////////////////
// CEmployesDlg dialog
CEmployesDlg::CEmployesDlg(CWnd* pParent /*=NULL*/)
: CDialog(CEmployesDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CEmployesDlg)
m_Name = _T("");
m_ID = _T("");
//}}AFX_DATA_INIT
}
void CEmployesDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEmployesDlg)
DDX_Control(pDX, IDC_LIST1, m_Grid);
DDX_Control(pDX, IDC_COMBO1, m_Sex);
DDX_Text(pDX, IDC_EDIT2, m_Name);
DDX_Text(pDX, IDC_EDIT1, m_ID);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEmployesDlg, CDialog)
//{{AFX_MSG_MAP(CEmployesDlg)
ON_BN_CLICKED(IDC_BUTTONADD, OnButtonadd)
ON_BN_CLICKED(IDC_BUTTONDEL, OnButtondel)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEmployesDlg message handlers
BOOL CEmployesDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//设置列表视图的扩展风格
m_Grid.SetExtendedStyle(LVS_EX_FLATSB //扁平风格显示滚动条
|LVS_EX_FULLROWSELECT //允许整行选中
|LVS_EX_HEADERDRAGDROP //允许整列拖动
|LVS_EX_ONECLICKACTIVATE //单击选中项
|LVS_EX_GRIDLINES); //画出网格线
//设置表头
m_Grid.InsertColumn(0,"编号",LVCFMT_LEFT,110,0);
m_Grid.InsertColumn(1,"姓名",LVCFMT_LEFT,110,1);
m_Grid.InsertColumn(2,"性别",LVCFMT_LEFT,110,2);
CString sql = "select * from tb_employes";
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open((_bstr_t)sql,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText);
int i=0;
while(!m_pRecordset->adoEOF)
{
m_Grid.InsertItem(i,"");
m_Grid.SetItemText(i,0,(char*)(_bstr_t)m_pRecordset->GetCollect("编号"));
m_Grid.SetItemText(i,1,(char*)(_bstr_t)m_pRecordset->GetCollect("姓名"));
m_Grid.SetItemText(i,2,(char*)(_bstr_t)m_pRecordset->GetCollect("性别"));
m_pRecordset->MoveNext();
i++;
}
m_pRecordset->Close();
m_Sex.SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CEmployesDlg::OnButtonadd()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_ID.IsEmpty() || m_Name.IsEmpty())
{
MessageBox("信息不能为空!");
}
CString sql,sex;
m_Sex.GetWindowText(sex);
sql.Format("insert into tb_employes (编号,姓名,性别) values ('%s','%s','%s')",
m_ID,m_Name,sex);
m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);
int n = m_Grid.GetItemCount();
m_Grid.InsertItem(n,"");
m_Grid.SetItemText(n,0,m_ID);
m_Grid.SetItemText(n,1,m_Name);
m_Grid.SetItemText(n,2,sex);
m_ID = m_Name = "";
UpdateData(FALSE);
}
void CEmployesDlg::OnButtondel()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_ID.IsEmpty())
{
MessageBox("编号不能为空!");
}
CString sql;
sql.Format("delete from tb_employes where 编号 = '%s'",m_ID);
m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);
int pos = m_Grid.GetSelectionMark();
m_Grid.DeleteItem(pos);
m_ID = m_Name = "";
UpdateData(FALSE);
}
void CEmployesDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int pos = m_Grid.GetSelectionMark();
m_ID = m_Grid.GetItemText(pos,0);
m_Name = m_Grid.GetItemText(pos,1);
m_Sex.SetWindowText(m_Grid.GetItemText(pos,2));
UpdateData(FALSE);
*pResult = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -