⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 useraddin.cpp

📁 本程序使用Visual C++6.0编写
💻 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 + -