📄 family.cpp
字号:
// FAMILY.cpp : implementation file
//
#include "stdafx.h"
#include "family_financ_system.h"
#include "FAMILY.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFAMILY dialog
CFAMILY::CFAMILY(CWnd* pParent /*=NULL*/)
: CDialog(CFAMILY::IDD, pParent)
{
//{{AFX_DATA_INIT(CFAMILY)
m_name = _T("");
m_typ = _T("");
//}}AFX_DATA_INIT
}
void CFAMILY::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFAMILY)
DDX_Control(pDX, IDC_LIST1, m_list);
DDX_Text(pDX, IDC_EDIT1, m_name);
DDX_Text(pDX, IDC_EDIT2, m_typ);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFAMILY, CDialog)
//{{AFX_MSG_MAP(CFAMILY)
ON_BN_CLICKED(IDCANCEL2, OnDelert)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFAMILY message handlers
void CFAMILY::OnDelert()
{
// TODO: Add your control notification handler code here
// 删除成员
int i=0,j;
j=m_list.GetItemCount();
while((m_list.GetItemState(i, LVIS_SELECTED) != LVIS_SELECTED)&&(i<j))
{
i++;
}
if(i<j)
{
CString f_man=m_list.GetItemText(i,0);
///////////////////////////////////////////////////////////////////////////////
CoInitialize(NULL); //初始化COM组件
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pConnection->Open(_bstr_t(Title1),"","",adModeUnknown);
CString sqlstr="SELECT * FROM 家庭成员表 where (家庭成员姓名='";
sqlstr=sqlstr+f_man+"')";
m_pRecordset->Open(_variant_t(sqlstr), // 查询Demo表中所有字段
(IDispatch*)m_pConnection.GetInterfacePtr(), // 获取数据库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
if(!m_pRecordset->EndEOF)
{
m_pRecordset->Delete(adAffectCurrent);
m_pRecordset->Update();///保存到库中
}
m_pRecordset->Close();
m_pConnection->Close();
/////////////////////////////////////////////
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pConnection->Open(_bstr_t(Title1),"","",adModeUnknown);
sqlstr="SELECT * FROM 家庭成员表";
m_pRecordset->Open(_variant_t(sqlstr), // 查询Demo表中所有字段
(IDispatch*)m_pConnection.GetInterfacePtr(), // 获取数据库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
m_list.DeleteAllItems();
int nstep;
for(i=0;!m_pRecordset->EndEOF; m_pRecordset->MoveNext()) // 在数据库中寻找 pRecord->MoveFirst()
{
_bstr_t temp=m_pRecordset->GetCollect("家庭成员姓名");
nstep=m_list.InsertItem(i,temp);
temp=m_pRecordset->GetCollect("成员属性");
m_list.SetItemText(nstep,1,temp);
}
////////////////////////////////////////////////////////////////////////////////////
m_pRecordset->Close();
m_pConnection->Close();
CoUninitialize(); //卸载COM组件
}
else
{
AfxMessageBox("请选择要删除的记录!");
}
}
void CFAMILY::OnOK()
{
// TODO: Add extra validation here
// 添加成员
//CDialog::OnOK();
UpdateData(TRUE);
if(m_name!="")
{
////////////////////////////////////////////////////////////////////////////////
//
// 添加记录需要用记录的打开方法
//
///////////////////////////////////////////////////////////////////////////////
CoInitialize(NULL); //初始化COM组件
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pConnection->Open(_bstr_t(Title1),"","",adModeUnknown);
CString sqlstr="SELECT * FROM 家庭成员表 where (家庭成员姓名='";
sqlstr=sqlstr+m_name+"')";
m_pRecordset->Open(_variant_t(sqlstr), // 查询Demo表中所有字段
(IDispatch*)m_pConnection.GetInterfacePtr(), // 获取数据库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
if(m_pRecordset->EndEOF)
{
// 写入各字段值
m_pRecordset->AddNew();
m_pRecordset->PutCollect("家庭成员姓名",_variant_t(m_name));;
m_pRecordset->PutCollect("成员属性", _variant_t(m_typ));
m_pRecordset->Update();
}
else
{
AfxMessageBox("该姓名已存在!");
}
m_pRecordset->Close();
m_pConnection->Close();
/////////////////////////////////////////////
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pConnection->Open(_bstr_t(Title1),"","",adModeUnknown);
sqlstr="SELECT * FROM 家庭成员表";
m_pRecordset->Open(_variant_t(sqlstr), // 查询Demo表中所有字段
(IDispatch*)m_pConnection.GetInterfacePtr(), // 获取数据库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
m_list.DeleteAllItems();
int nstep;
for(int i=0;!m_pRecordset->EndEOF; m_pRecordset->MoveNext()) // 在数据库中寻找 pRecord->MoveFirst()
{
_bstr_t temp=m_pRecordset->GetCollect("家庭成员姓名");
nstep=m_list.InsertItem(i,temp);
temp=m_pRecordset->GetCollect("成员属性");
m_list.SetItemText(nstep,1,temp);
}
////////////////////////////////////////////////////////////////////////////////////
m_pRecordset->Close();
m_pConnection->Close();
CoUninitialize(); //卸载COM组件
is_ok="OK";
}
else
{
AfxMessageBox("必须有姓名!");
}
m_name="";
m_typ="";
UpdateData(FALSE);
}
BOOL CFAMILY::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
// 初始化列表
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_list.InsertColumn(0,"家庭成员姓名",LVCFMT_LEFT,120,-1);
m_list.InsertColumn(1,"成员属性",LVCFMT_LEFT,100,-1);
///////////////////////////////////////////////////////////
int i=0;
int nstep;
_bstr_t temp;
////////////////////////////////////////////////////////////////////////////////
CoInitialize(NULL); //初始化COM组件
_ConnectionPtr pConn(__uuidof(Connection)); //实例化一个connection对象pConn
_RecordsetPtr pRst(__uuidof(Recordset)); //实例化一个Recordset对象pRst
_CommandPtr pCmd(__uuidof(Command)); //实例化一个Command对象pCmd
pConn->ConnectionString=(_bstr_t)Title1;
//通过pConn对象连接字符串,连接到ACCESS数据库
HRESULT hr = pConn->Open("","","",adConnectUnspecified);
// 以同步的方式进行连接 open("连接字串","用户名","密码","连接方式")
// 连接方式有"adConnectUnspecified"(同步) 和 "adAsyncConnect" (异步)
pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
pCmd->CommandText="SELECT * FROM 家庭成员表"; //通过pCmd对象访问数据库
pRst=pCmd->Execute(NULL,NULL,adCmdText);
for(;!pRst->EndEOF; pRst->MoveNext()) // 在数据库中寻找 pRecord->MoveFirst()
{
_bstr_t temp=pRst->GetCollect("家庭成员姓名");
nstep=m_list.InsertItem(i,temp);
temp=pRst->GetCollect("成员属性");
m_list.SetItemText(nstep,1,temp);
}
//////////////////////////////////////////////////////////////////////
pRst->Close(); //关闭对象
pConn->Close();
pCmd.Release(); //释放对象
pRst.Release();
pConn.Release();
CoUninitialize(); //卸载COM组件
/////////////////////////////////////////////////////////////////////
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -