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

📄 employeeaddim.cpp

📁 本程序使用Visual C++6.0编写
💻 CPP
字号:
// EmployeeAddim.cpp : implementation file
//

#include "stdafx.h"
#include "Sjsys.h"
#include "EmployeeAddim.h"
#include "AffirmDlg.h"
#include "EmployeePara.h"

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

/////////////////////////////////////////////////////////////////////////////
// CEmployeeAddim dialog


CEmployeeAddim::CEmployeeAddim(CWnd* pParent /*=NULL*/)
	: CDialog(CEmployeeAddim::IDD, pParent)
{
	//{{AFX_DATA_INIT(CEmployeeAddim)
	//}}AFX_DATA_INIT
}


void CEmployeeAddim::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CEmployeeAddim)
	DDX_Control(pDX, IDC_QUERYBTN, m_inqirebtn);
	DDX_Control(pDX, IDC_NEW_BTN, m_newbtn);
	DDX_Control(pDX, IDC_MODIFYBTN, m_modifybtn);
	DDX_Control(pDX, IDC_DELBTN, m_deletebtn);
	DDX_Control(pDX, IDC_LIST1, m_employeelist);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CEmployeeAddim, CDialog)
	//{{AFX_MSG_MAP(CEmployeeAddim)
	ON_BN_CLICKED(IDC_NEW_BTN, OnNewBtn)
	ON_BN_CLICKED(IDC_DELBTN, OnDelbtn)
	ON_BN_CLICKED(IDC_MODIFYBTN, OnModifybtn)
	ON_BN_CLICKED(IDC_QUERYBTN, OnQuerybtn)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEmployeeAddim message handlers

BOOL CEmployeeAddim::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_newbtn.SetShade(CShadeButtonST::SHS_METAL);
	m_modifybtn.SetShade(CShadeButtonST::SHS_METAL);
	m_deletebtn.SetShade(CShadeButtonST::SHS_METAL);
	m_inqirebtn.SetShade(CShadeButtonST::SHS_METAL);

	DWORD style;
	style=m_employeelist.GetExStyle();
	style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)&(~LVS_EX_CHECKBOXES) ;
	m_employeelist.SetExtendedStyle(style);
	

	m_employeelist.InsertColumn(0,"编号",LVCFMT_LEFT,60);
	m_employeelist.InsertColumn(1,"工号",LVCFMT_LEFT,60);
	m_employeelist.InsertColumn(2,"姓名",LVCFMT_LEFT,100);
	m_employeelist.InsertColumn(3,"所属部室",LVCFMT_LEFT,80);
	m_employeelist.InsertColumn(4,"联系电话",LVCFMT_LEFT,100);
	m_employeelist.InsertColumn(5,"邮箱",LVCFMT_LEFT,150);

	
	RefreshData();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CEmployeeAddim::OnNewBtn() 
{
	// TODO: Add your control notification handler code here
    CEmployeePara dlg;
    if(IDOK==dlg.DoModal())
	{
		CString SQLStr="select * from Employee";
		pRst.CreateInstance(__uuidof(Recordset));
		if(dlg.m_id!="")
			 {
    				SQLStr.Format("select * from Employee where No='%s'",dlg.m_id);
					_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_id=="")
								   {
									   return;
								   }
							}
					}
					m_pRecordset1->Close();
			}
		else  
		{
			AfxMessageBox("账号名不能为空");
			if(IDOK==dlg.DoModal())
			{
				if(dlg.m_id=="")
				   {
					   return;
				   }
			}
		}
       
		try 
		  { 
	    	 pRst->Open((LPTSTR)SQLStr.GetBuffer(130),
									((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
									adOpenDynamic,adLockPessimistic,adCmdText);
			 CString str;
			 pRst->AddNew();
			 pRst->PutCollect("Cname", (_variant_t)dlg.m_name);
			 //str.Format("%d",dlg.m_id);
			 pRst->PutCollect("No", (_variant_t)dlg.m_id);
			 pRst->PutCollect("Email", (_variant_t)dlg.m_email);
			 pRst->PutCollect("Phone", (_variant_t)dlg.m_phone);
			 //str.Format("%d",dlg.m_department);
			 pRst->PutCollect("Departmentid", (_variant_t)dlg.m_department);/**/
      
			 pRst->Update();
	         pRst->Close();
			 MessageBox( "数据库新建成功"); 
		}
		catch(_com_error& e) 
			{ 
			MessageBox( "数据库操作失败 "); 
			AfxMessageBox(e.ErrorMessage());
			return;
			} 
	
	RefreshData();
     }
}

void CEmployeeAddim::RefreshData()
{
	m_employeelist.DeleteAllItems();
	m_employeelist.SetRedraw(FALSE);

	pRst.CreateInstance(__uuidof(Recordset));
    try
	{
			CString SQLStr="select * from Employee";
	    	 pRst->Open((LPTSTR)SQLStr.GetBuffer(130),
			((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
					adOpenDynamic,adLockPessimistic,adCmdText);//打开查询结果记录集

			int i=0;
			int nItem=0;
			while(!pRst->adoEOF)
			{			
		       nItem=m_employeelist.InsertItem(i,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("ID")));//
				m_employeelist.SetItemText(nItem,1,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("No")));
				m_employeelist.SetItemText(nItem,2,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Cname")));
				m_employeelist.SetItemText(nItem,3,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Departmentid"))); 
                m_employeelist.SetItemText(nItem,4,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Phone")));
				m_employeelist.SetItemText(nItem,5,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Email")));
				pRst->MoveNext();
				i++;
			}
			pRst->Close();		
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
   m_employeelist.SetRedraw(TRUE);
}

void CEmployeeAddim::OnDelbtn() 
{
	// TODO: Add your control notification handler code here
	POSITION pos = m_employeelist.GetFirstSelectedItemPosition();
	int m_nIndex = m_employeelist.GetNextSelectedItem(pos);  // 得到项目索引
	if(m_nIndex==-1)
	{
		MessageBox("请选择一项在修改!","提示",MB_ICONINFORMATION);
		return;
	}
	CAffirmDlg dlg;
	if(dlg.DoModal()!=IDOK)//显示确认删除对话框
	{
		return;
	}
	CString sql_;
	sql_.Format("DELETE FROM Employee WHERE ID='%s'",m_employeelist.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 CEmployeeAddim::OnModifybtn() 
{
	// TODO: Add your control notification handler code here
	POSITION pos = m_employeelist.GetFirstSelectedItemPosition();
	int m_nIndex = m_employeelist.GetNextSelectedItem(pos);  // 得到项目索引
	if(m_nIndex==-1)
	{
		MessageBox("请选择一项在修改!","提示",MB_ICONINFORMATION);
		return;
	}
    CEmployeePara dlg;
//	dlg.m_no=m_employeelist.GetItemText( m_nIndex,0);
    dlg.m_id=m_employeelist.GetItemText(m_nIndex,1);
	dlg.m_name=m_employeelist.GetItemText( m_nIndex,2);
	dlg.m_department = m_employeelist.GetItemText( m_nIndex,3);
	dlg.m_phone = m_employeelist.GetItemText(m_nIndex,4);
	dlg.m_email = m_employeelist.GetItemText(m_nIndex,5);
	if(IDOK==dlg.DoModal())
	{
		HRESULT hTRes;
		CString SQLStr;
		SQLStr.Format("select * from Employee where ID='%s'",m_employeelist.GetItemText( m_nIndex,0));
    	try 
		 { 
	    	hTRes=pRst.CreateInstance("ADODB.Recordset");
			if (SUCCEEDED(hTRes))
			{
				hTRes=pRst->Open((LPTSTR)SQLStr.GetBuffer(130),
									((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
									adOpenDynamic,adLockPessimistic,adCmdText);
             CString s;
			 s=dlg.m_name;
			 s=s.Left(50);
			 pRst->PutCollect("Cname", _variant_t(s));
			 //str.Format("%d",dlg.m_id);
			 pRst->PutCollect("No", (_variant_t)dlg.m_id);
			 pRst->PutCollect("Email", (_variant_t)dlg.m_email);
			 pRst->PutCollect("Phone", (_variant_t)dlg.m_phone);
			 //str.Format("%d",dlg.m_department);
			 pRst->PutCollect("Departmentid", (_variant_t)dlg.m_department);/**/
				pRst->Update();
				MessageBox( "数据库修改成功"); 
			  }
	         pRst->Close();
		}
	 
	   catch(_com_error& e) 
	   { 
			MessageBox( "数据库操作失败 "); 
			AfxMessageBox(e.ErrorMessage());
			return;
	   } 
	}
	else
		return;
	RefreshData();
}



void CEmployeeAddim::OnQuerybtn() 
{
	// TODO: Add your control notification handler code here
	CString value="";
    CString SQLstr="select * from Employee";
    int flag=0;
	CEmployeePara dlg;
	dlg.m_flag=1;
    if(IDOK==dlg.DoModal())
	{
		CString SQLStr="select * from Employee";
		pRst.CreateInstance(__uuidof(Recordset));
		if(dlg.m_id!="")
		{
		   SQLstr += " where No='"+dlg.m_id+"'";
		   flag=1;
		}
       if(dlg.m_name!=""&&flag)
	   {
		   SQLstr+="and Cname='"+dlg.m_name+"'";
       }
	   if(dlg.m_name!=""&&flag==0)
	   {
          SQLstr += " where Cname='"+dlg.m_name+"'";
	   }
	  }
      else
		  return;

   try 
      { 
	     pRst->Open((LPTSTR)SQLstr.GetBuffer(130),
									((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
									adOpenDynamic,adLockPessimistic,adCmdText);

    }
	catch(_com_error& e) 
		{ 
		MessageBox( "数据库操作失败 "); 
		AfxMessageBox(e.ErrorMessage());
		return;
		} 

	int i=0;
	int nItem=0;
	m_employeelist.DeleteAllItems();
	while(!(pRst->adoEOF))
	{
		nItem=m_employeelist.InsertItem(i,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("ID")));//
		m_employeelist.SetItemText(nItem,1,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("No")));
		m_employeelist.SetItemText(nItem,2,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Cname")));
		m_employeelist.SetItemText(nItem,3,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Departmentid"))); 
        m_employeelist.SetItemText(nItem,4,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Phone")));
		m_employeelist.SetItemText(nItem,5,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Email")));
		pRst->MoveNext();
		i++;
	}
	pRst->Close();		
}

void CEmployeeAddim::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	POSITION pos = m_employeelist.GetFirstSelectedItemPosition();
	int m_nIndex = m_employeelist.GetNextSelectedItem(pos);  // 得到项目索引
	if(m_nIndex==-1)
	{
		MessageBox("请选择一项在修改!","提示",MB_ICONINFORMATION);
		return;
	}
    CEmployeePara dlg;
//	dlg.m_no=m_employeelist.GetItemText( m_nIndex,0);
    dlg.m_id=m_employeelist.GetItemText(m_nIndex,1);
	dlg.m_name=m_employeelist.GetItemText( m_nIndex,2);
	dlg.m_department = m_employeelist.GetItemText( m_nIndex,3);
	dlg.m_phone = m_employeelist.GetItemText(m_nIndex,4);
	dlg.m_email = m_employeelist.GetItemText(m_nIndex,5);
	if(IDOK==dlg.DoModal())
	{
		HRESULT hTRes;
		CString SQLStr;
		SQLStr.Format("select * from Employee where ID='%s'",m_employeelist.GetItemText( m_nIndex,0));
		//CString SQLStr="select * from Employee ";//where ID='"+dlg.m_no+"'";
    	try 
		 { 
	    	hTRes=pRst.CreateInstance("ADODB.Recordset");
			if (SUCCEEDED(hTRes))
			{
				hTRes=pRst->Open((LPTSTR)SQLStr.GetBuffer(130),
									((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
									adOpenDynamic,adLockPessimistic,adCmdText);

				if(SUCCEEDED(hTRes))
				{
					TRACE(_T("连接成功!\n"));
					CString s;
					s=dlg.m_name;
					s=s.Left(50);
					pRst->PutCollect("Cname", _variant_t(s));
					pRst->PutCollect("No", (_variant_t)dlg.m_id);
					pRst->PutCollect("Email", (_variant_t)dlg.m_email);
					pRst->PutCollect("Phone", (_variant_t)dlg.m_phone);
					pRst->PutCollect("Departmentid", (_variant_t)dlg.m_department);
					pRst->Update();
					MessageBox("数据库修改成功"); 
				}
			  }
	         pRst->Close();
		}
	 
	   catch(_com_error& e) 
	   { 
			MessageBox( "数据库操作失败 "); 
			AfxMessageBox(e.ErrorMessage());
			return;
	   } 
	}
	else
		return;
	RefreshData();
	*pResult = 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -