📄 useraddin.cpp
字号:
// UserAddin.cpp : implementation file
//
#include "stdafx.h"
#include "sjsys.h"
#include "UserAddin.h"
#include "UserParaDlg.h"
#include "AffirmDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CUserAddin dialog
CUserAddin::CUserAddin(CWnd* pParent /*=NULL*/)
: CDialog(CUserAddin::IDD, pParent)
{
//{{AFX_DATA_INIT(CUserAddin)
//}}AFX_DATA_INIT
}
void CUserAddin::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CUserAddin)
DDX_Control(pDX, IDC_BUTTON3, m_btn3);
DDX_Control(pDX, IDC_BUTTON2, m_btn2);
DDX_Control(pDX, IDC_BUTTON1, m_btn1);
DDX_Control(pDX, IDC_LIST1, m_userlist);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CUserAddin, CDialog)
//{{AFX_MSG_MAP(CUserAddin)
ON_BN_CLICKED(IDC_BUTTON1, OnNewBtn)
ON_BN_CLICKED(IDC_BUTTON2, OnUpdateBtn)
ON_BN_CLICKED(IDC_BUTTON3, OnDeleteBtn)
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CUserAddin message handlers
BOOL CUserAddin::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_btn1.SetShade(CShadeButtonST::SHS_METAL);
m_btn2.SetShade(CShadeButtonST::SHS_METAL);
m_btn3.SetShade(CShadeButtonST::SHS_METAL);
DWORD style;
style=m_userlist.GetExStyle();
style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)&(~LVS_EX_CHECKBOXES) ;
m_userlist.SetExtendedStyle(style);
m_userlist.InsertColumn(0,"编号",LVCFMT_LEFT,60);
m_userlist.InsertColumn(1,"账号名",LVCFMT_LEFT,60);
m_userlist.InsertColumn(2,"中文名",LVCFMT_LEFT,100);
m_userlist.InsertColumn(3,"联系电话",LVCFMT_LEFT,120);
m_userlist.InsertColumn(4,"邮箱",LVCFMT_LEFT,150);
m_userlist.InsertColumn(5,"密码标志",LVCFMT_LEFT,60);
RefreshData();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CUserAddin::RefreshData()
{
m_userlist.DeleteAllItems();
m_userlist.SetRedraw(FALSE);
pRecordset.CreateInstance(__uuidof(Recordset));
try
{
CString SQLStr="SELECT * FROM user1";
pRecordset->Open((LPTSTR)SQLStr.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);//打开查询结果记录集
int i=0;
int nItem=0;
while(!(pRecordset->adoEOF))
{
nItem=m_userlist.InsertItem(i,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRecordset->GetCollect("ID")));
m_userlist.SetItemText(nItem,1,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRecordset->GetCollect("Name")));
m_userlist.SetItemText(nItem,2,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRecordset->GetCollect("Cname")));
m_userlist.SetItemText(nItem,3,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRecordset->GetCollect("Phone")));
m_userlist.SetItemText(nItem,4,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRecordset->GetCollect("Email")));
m_userlist.SetItemText(nItem,5,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRecordset->GetCollect("Memorizable")));
pRecordset->MoveNext();
i++;
}
pRecordset->Close();
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
MessageBox("创建记录集失败!","错误");
}
m_userlist.SetRedraw(TRUE);
}
void CUserAddin::OnNewBtn()
{
// TODO: Add your control notification handler code here
CUserParaDlg dlg;
if(IDOK==dlg.DoModal())
{
/* if(dlg.m_password!=dlg.m_repassword)
{
AfxMessageBox("输入的密码不相同");
return;
}*/
CString SQLStr="select * from user1";
if(dlg.m_name!="")
{
SQLStr.Format("select * from user1 where Name='%s'",dlg.m_name);
_RecordsetPtr m_pRecordset1;
m_pRecordset1.CreateInstance(_T("ADODB.Recordset"));
try
{
m_pRecordset1->Open((LPTSTR)SQLStr.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
}
catch(_com_error *e)
{
CString errormessage;
errormessage.Format("打开记录集失败!\r\n错误信息:%s",e->ErrorMessage());
AfxMessageBox(errormessage);
return;
}
if (!m_pRecordset1->adoEOF)
{
MessageBox("账号名已经存在,请输入一个不同的账号名");
if(IDOK==dlg.DoModal())
{
if(dlg.m_name=="")
{
return;
}
}
}
m_pRecordset1->Close();
}
else
{
AfxMessageBox("账号名不能为空");
if(IDOK==dlg.DoModal())
{
if(dlg.m_name=="")
{
return;
}
}
}
try
{
pRecordset.CreateInstance(__uuidof(Recordset));
pRecordset->Open((LPTSTR)SQLStr.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
pRecordset->AddNew();
pRecordset->PutCollect("Name", (_variant_t)dlg.m_name);
pRecordset->PutCollect("Cname", (_variant_t)dlg.m_cname);
// pRecordset->PutCollect("Password", (_variant_t)dlg.m_password);
pRecordset->PutCollect("Email", (_variant_t)dlg.m_email);
pRecordset->PutCollect("Phone", (_variant_t)dlg.m_phone);
// pRecordset->PutCollect("Memorizable", (_variant_t)dlg.m_passwordflag);
pRecordset->Update();
MessageBox( "数据库新建成功");
}
catch(_com_error& e)
{
MessageBox( "数据库操作失败 ");
AfxMessageBox(e.ErrorMessage());
return;
}
pRecordset->Close();
RefreshData();
}
}
void CUserAddin::OnUpdateBtn()
{
// TODO: Add your control notification handler code here
POSITION pos = m_userlist.GetFirstSelectedItemPosition();
int m_nIndex = m_userlist.GetNextSelectedItem(pos); // 得到项目索引
if(m_nIndex==-1)
{
MessageBox("请选择一项在修改!","提示",MB_ICONINFORMATION);
return;
}
CUserParaDlg dlg;
// dlg.m_id=m_userlist.GetItemText( m_nIndex,0);
dlg.m_name=m_userlist.GetItemText(m_nIndex,1);
dlg.m_cname=m_userlist.GetItemText( m_nIndex,2);
dlg.m_phone = m_userlist.GetItemText(m_nIndex,3);
dlg.m_email = m_userlist.GetItemText(m_nIndex,4);
// dlg.m_passwordflag = m_userlist.GetItemText( m_nIndex,5);
if(IDOK==dlg.DoModal())
{
// if(dlg.m_password=="")
// {
// MessageBox("密码不能为空");
// return;
// }
HRESULT hTRes;
CString SQLStr="select * from user1 where ID='"+m_userlist.GetItemText( m_nIndex,0)+"'";
//if(dlg.m_password==dlg.m_repassword)
// {
try
{
hTRes=pRecordset.CreateInstance("ADODB.Recordset");
if (SUCCEEDED(hTRes))
{
hTRes=pRecordset->Open((LPTSTR)SQLStr.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
CString s;
s=dlg.m_name;
s=s.Left(49);
pRecordset->PutCollect("Name", (_variant_t)s);
s=dlg.m_cname;
s=s.Left(49);
pRecordset->PutCollect("Cname", _variant_t(s));
// pRecordset->PutCollect("Password", (_variant_t)dlg.m_password);
pRecordset->PutCollect("Email", (_variant_t)dlg.m_email);
pRecordset->PutCollect("Phone", (_variant_t)dlg.m_phone);
// pRecordset->PutCollect("Memorizable", (_variant_t)dlg.m_passwordflag);
pRecordset->Update();
MessageBox( "数据库修改成功");
}
pRecordset->Close();
}
catch(_com_error& e)
{
MessageBox( "数据库操作失败 ");
AfxMessageBox(e.ErrorMessage());
return;
}
// }
// else
// {
// MessageBox("密码不一致");
// return;
// }
}
else
return;
RefreshData();
}
void CUserAddin::OnDeleteBtn()
{
// TODO: Add your control notification handler code here
POSITION pos = m_userlist.GetFirstSelectedItemPosition();
int m_nIndex = m_userlist.GetNextSelectedItem(pos); // 得到项目索引
if(m_nIndex==-1)
{
MessageBox("请选择一项在修改!","提示",MB_ICONINFORMATION);
return;
}
CAffirmDlg dlg;
if(dlg.DoModal()!=IDOK)//显示确认删除对话框
{
return;
}
CString sql_;
sql_.Format("DELETE FROM user1 WHERE ID='%s'",m_userlist.GetItemText( m_nIndex,0));
_bstr_t sql = sql_;
_variant_t RecordsAffected;
try
{
(((CSjsysApp*)AfxGetApp())->pConnection)->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
}
catch(_com_error& e)
{
AfxMessageBox(e.ErrorMessage());
return;
}
RefreshData();
}
void CUserAddin::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
POSITION pos = m_userlist.GetFirstSelectedItemPosition();
int m_nIndex = m_userlist.GetNextSelectedItem(pos); // 得到项目索引
if(m_nIndex==-1)
{
MessageBox("请选择一项在修改!","提示",MB_ICONINFORMATION);
return;
}
CUserParaDlg dlg;
// dlg.m_id=m_userlist.GetItemText( m_nIndex,0);
dlg.m_name=m_userlist.GetItemText(m_nIndex,1);
dlg.m_cname=m_userlist.GetItemText( m_nIndex,2);
dlg.m_phone = m_userlist.GetItemText(m_nIndex,3);
dlg.m_email = m_userlist.GetItemText(m_nIndex,4);
// dlg.m_passwordflag = m_userlist.GetItemText( m_nIndex,5);
if(IDOK==dlg.DoModal())
{
HRESULT hTRes;
CString SQLStr="select * from user1 where ID='"+m_userlist.GetItemText( m_nIndex,0)+"'";
try
{
hTRes=pRecordset.CreateInstance("ADODB.Recordset");
if (SUCCEEDED(hTRes))
{
hTRes=pRecordset->Open((LPTSTR)SQLStr.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
pRecordset->PutCollect("Name", (_variant_t)dlg.m_name);
pRecordset->PutCollect("Cname", (_variant_t)dlg.m_cname);
// pRecordset->PutCollect("Password", (_variant_t)dlg.m_password);
pRecordset->PutCollect("Email", (_variant_t)dlg.m_email);
pRecordset->PutCollect("Phone", (_variant_t)dlg.m_phone);
// pRecordset->PutCollect("Memorizable", (_variant_t)dlg.m_passwordflag);
pRecordset->Update();
MessageBox( "数据库修改成功");
}
pRecordset->Close();
}
catch(_com_error& e)
{
MessageBox( "数据库操作失败 ");
AfxMessageBox(e.ErrorMessage());
return;
}
}
RefreshData();
*pResult = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -