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

📄 infodlg.cpp

📁 VC连接数据库.自己第一次用VC写的希望对新手有帮助!
💻 CPP
字号:
// InfoDlg.cpp : implementation file
//

#include "stdafx.h"
#include "info.h"
#include "InfoDlg.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CInfoDlg dialog


CInfoDlg::CInfoDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CInfoDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CInfoDlg)
	m_dDate = COleDateTime::GetCurrentTime();
	m_strDepartment = _T("");
	m_nID = 0;
	m_lMoney = 0;
	m_strName = _T("");
	m_strTelNum = _T("");
	//}}AFX_DATA_INIT
}


void CInfoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CInfoDlg)
	DDX_Control(pDX, IDC_LISTCTRL, m_ctrlList1);
	DDX_Control(pDX, IDC_LISTBOX, m_ctrlList);
	DDX_Control(pDX, IDC_TELNUM, m_ctrlTelNum);
	DDX_Control(pDX, IDC_MONEY, m_ctrlMoney);
	DDX_Control(pDX, IDC_DEPARTMENT, m_ctrlDepartment);
	DDX_Control(pDX, IDC_DATE, m_ctrlDate);
	DDX_Control(pDX, IDC_NAME, m_ctrlName);
	DDX_Text(pDX, IDC_DATE, m_dDate);
	DDX_Text(pDX, IDC_DEPARTMENT, m_strDepartment);
	DDX_Text(pDX, IDC_ID, m_nID);
	DDX_Text(pDX, IDC_MONEY, m_lMoney);
	DDX_Text(pDX, IDC_NAME, m_strName);
	DDX_Text(pDX, IDC_TELNUM, m_strTelNum);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CInfoDlg, CDialog)
	//{{AFX_MSG_MAP(CInfoDlg)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_BN_CLICKED(IDC_DEL, OnDel)
	ON_BN_CLICKED(IDC_QUERY, OnQuery)
	ON_BN_CLICKED(IDC_MODIFY, OnModify)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CInfoDlg message handlers

BOOL CInfoDlg::OpenRecordSet(_RecordsetPtr &recPtr, CString &strSQL)
{
  CInfoApp* pApp=(CInfoApp*)AfxGetApp();
  recPtr.CreateInstance(_uuidof(Recordset));
  try
  {
	  recPtr->Open(strSQL.AllocSysString(),pApp->m_pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
  }
  catch (_com_error e)
  {
	  CString strError;
	  strError.Format("警告:打开数据表时发生异常。错误信息:%s",e.ErrorMessage());
	  AfxMessageBox(strError);
	  return FALSE;
  }
  return TRUE;
}

void CInfoDlg::OnAdd() 
{
	// TODO: Add your control notification handler code here
	m_ctrlName.EnableWindow(TRUE);
	m_ctrlDepartment.EnableWindow(TRUE);
	m_ctrlDate.EnableWindow(TRUE);
	m_ctrlMoney.EnableWindow(TRUE);
	m_ctrlTelNum.EnableWindow(TRUE);
	CString strSQL;
	UpdateData(TRUE);
	if(m_nID==0)
	{
		AfxMessageBox("职工ID不可以为空!");
		return;
	}
	strSQL="select * from info";
	if(!OpenRecordSet(m_pRecordset,strSQL))
	{
		AfxMessageBox("打开数据表不成功!");
		return;
	}
	try
	{
		m_pRecordset->AddNew();
		CString str;
		str.Format("%d",m_nID);
		m_pRecordset->PutCollect("职员ID",_variant_t(str));
		m_pRecordset->PutCollect("姓名",_variant_t(m_strName));
		m_pRecordset->PutCollect("部门",_variant_t(m_strDepartment));
		m_pRecordset->PutCollect("录用日期",_variant_t(m_dDate));
		str.Format("%d",m_lMoney);
		m_pRecordset->PutCollect("信贷限额",_variant_t(str));
		m_pRecordset->PutCollect("电话号码",_variant_t(m_strTelNum));
        m_pRecordset->Update();
		m_pRecordset->MoveLast();	
	}
	catch(_com_error e)
	{
		CString strError;
		strError.Format("警告:插入信息时发生异常。错误信息:%s",e.ErrorMessage());
		AfxMessageBox(strError);
	}
    m_pRecordset->Close();
	m_pRecordset=NULL;
	
    AfxMessageBox("插入信息成功!");
	CMainFrame* pMainFrm=(CMainFrame*)AfxGetMainWnd();
}

void CInfoDlg::OnDel() 
{
	// TODO: Add your control notification handler code here
    m_ctrlName.EnableWindow(FALSE);
	m_ctrlDepartment.EnableWindow(FALSE);
	m_ctrlDate.EnableWindow(FALSE);
	m_ctrlMoney.EnableWindow(FALSE);
	m_ctrlTelNum.EnableWindow(FALSE);

    CString strID;
    UpdateData(TRUE);
	strID.Format("是否删除职工ID为:%d的个人信息?",m_nID);
	if(MessageBox(strID,"删除确认",MB_YESNO|MB_ICONQUESTION)==IDNO)
	{
		return;
	}
	CString strSQL;
	strSQL.Format("select * from info where 职员ID=%d",m_nID);
	if(!OpenRecordSet(m_pRecordset,strSQL))
	{
		AfxMessageBox("打开数据表不成功!");
		return;
	}
	m_pRecordset->Delete(adAffectCurrent);
	m_pRecordset->Close();
	m_pRecordset=NULL;
	AfxMessageBox("删除成功!");

}

void CInfoDlg::OnQuery() 
{
	// TODO: Add your control notification handler code here
	CString strSQL;
	UpdateData(TRUE);
    strSQL.Format("select * from info where 职员ID=%d",m_nID,m_strName);
	if(!OpenRecordSet(m_pRecordset,strSQL))
	{
		AfxMessageBox("打开数据表不成功!");
		return;
	}
	if(!m_pRecordset->BOF)
	{
		m_pRecordset->MoveFirst();
	}
	int i=0;
if(!m_pRecordset->adoEOF)
	{
		_variant_t varvlue;
        CString str;
		m_ctrlList1.InsertItem(0,"职员ID");
        m_ctrlList1.InsertItem(1,"姓名");
		varvlue=m_pRecordset->GetFields()->GetItem("职员ID")->Value;
		
		str=(LPCTSTR)(_bstr_t)varvlue;
        //str=vartostr(varvlue);
		m_ctrlList1.SetItemText(i,0,str);
		varvlue=m_pRecordset->GetFields()->GetItem("姓名")->Value;
		str=(LPCTSTR)(_bstr_t)varvlue;
	    m_ctrlList1.SetItemText(i,1,str);
	}
	m_pRecordset->Close();
	m_pRecordset=NULL;

}

void CInfoDlg::OnModify() 
{
	// TODO: Add your control notification handler code here
	
}

⌨️ 快捷键说明

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