您的位置:首页 > 其它

东软mfc总结项目i-【学生信息管理系统】

2013-07-19 12:52 661 查看
// DialogAdd.cpp : implementation file
//

#include "stdafx.h"
#include "InformationProject.h"
#include "DialogAdd.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDialogAdd dialog

CDialogAdd::CDialogAdd(CWnd* pParent /*=NULL*/)
	: CDialog(CDialogAdd::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDialogAdd)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

void CDialogAdd::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDialogAdd)
	DDX_Control(pDX, IDC_EDIT1, m_EditStudentID);
	DDX_Control(pDX, IDC_EDIT6, m_EditID);
	DDX_Control(pDX, IDC_EDIT5, m_EditQq);
	DDX_Control(pDX, IDC_EDIT4, m_EditTel);
	DDX_Control(pDX, IDC_EDIT3, m_EditClassNum);
	DDX_Control(pDX, IDC_EDIT2, m_EditName);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CDialogAdd, CDialog)
	//{{AFX_MSG_MAP(CDialogAdd)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDialogAdd message handlers

void CDialogAdd::OnOK() 
{
	// TODO: Add extra validation here
	this->GetDlgItemText(IDC_EDIT1, strStudentID);
	this->GetDlgItemText(IDC_EDIT2, strName);
	this->GetDlgItemText(IDC_EDIT3, strClassNum);
	this->GetDlgItemText(IDC_EDIT4, strTel);
	this->GetDlgItemText(IDC_EDIT5, strQq);
	this->GetDlgItemText(IDC_EDIT6, strID);
	
	CDialog::OnOK();
}









// DialogDelete.cpp : implementation file
//

#include "stdafx.h"
#include "InformationProject.h"
#include "DialogDelete.h"

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

/////////////////////////////////////////////////////////////////////////////
// DialogDelete dialog

DialogDelete::DialogDelete(CWnd* pParent /*=NULL*/)
	: CDialog(DialogDelete::IDD, pParent)
{
	//{{AFX_DATA_INIT(DialogDelete)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

void DialogDelete::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DialogDelete)
	DDX_Control(pDX, IDC_EDIT1, m_EditDelete);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(DialogDelete, CDialog)
	//{{AFX_MSG_MAP(DialogDelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DialogDelete message handlers

void DialogDelete::OnOK() 
{
	// TODO: Add extra validation here
	this->GetDlgItemText(IDC_EDIT1, strDelete);

	CDialog::OnOK();
}


// DialogEdit.cpp : implementation file
//

#include "stdafx.h"
#include "InformationProject.h"
#include "DialogEdit.h"

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

/////////////////////////////////////////////////////////////////////////////
// DialogEdit dialog

DialogEdit::DialogEdit(CWnd* pParent /*=NULL*/)
	: CDialog(DialogEdit::IDD, pParent)
{
	//{{AFX_DATA_INIT(DialogEdit)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

void DialogEdit::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DialogEdit)
	DDX_Control(pDX, IDC_EDIT1, m_EditEdit);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(DialogEdit, CDialog)
	//{{AFX_MSG_MAP(DialogEdit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DialogEdit message handlers

void DialogEdit::OnOK() 
{
	// TODO: Add extra validation here
	this->GetDlgItemText(IDC_EDIT1, strEdit);

	CDialog::OnOK();
}


// DialogFind.cpp : implementation file
//

#include "stdafx.h"
#include "InformationProject.h"
#include "DialogFind.h"

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

/////////////////////////////////////////////////////////////////////////////
// DialogFind dialog

DialogFind::DialogFind(CWnd* pParent /*=NULL*/)
	: CDialog(DialogFind::IDD, pParent)
{
	//{{AFX_DATA_INIT(DialogFind)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

void DialogFind::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DialogFind)
	DDX_Control(pDX, IDC_EDIT1, m_EditFind);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(DialogFind, CDialog)
	//{{AFX_MSG_MAP(DialogFind)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DialogFind message handlers

void DialogFind::OnOK() 
{
	// TODO: Add extra validation here
	this->GetDlgItemText(IDC_EDIT1, strFind);
	
	CDialog::OnOK();
}


// InformationProject.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "InformationProject.h"

#include "MainFrm.h"
#include "InformationProjectDoc.h"
#include "InformationProjectView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectApp

BEGIN_MESSAGE_MAP(CInformationProjectApp, CWinApp)
	//{{AFX_MSG_MAP(CInformationProjectApp)
	ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG_MAP
	// Standard file based document commands
	ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
	ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
	// Standard print setup command
	ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectApp construction

CInformationProjectApp::CInformationProjectApp()
{
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CInformationProjectApp object

CInformationProjectApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectApp initialization

BOOL CInformationProjectApp::InitInstance()
{
	AfxEnableControlContainer();

	// Standard initialization
	// If you are not using these features and wish to reduce the size
	//  of your final executable, you should remove from the following
	//  the specific initialization routines you do not need.

#ifdef _AFXDLL
	Enable3dControls();			// Call this when using MFC in a shared DLL
#else
	Enable3dControlsStatic();	// Call this when linking to MFC statically
#endif

	// Change the registry key under which our settings are stored.
	// TODO: You should modify this string to be something appropriate
	// such as the name of your company or organization.
	SetRegistryKey(_T("Local AppWizard-Generated Applications"));

	LoadStdProfileSettings();  // Load standard INI file options (including MRU)

	// Register the application's document templates.  Document templates
	//  serve as the connection between documents, frame windows and views.

	CSingleDocTemplate* pDocTemplate;
	pDocTemplate = new CSingleDocTemplate(
		IDR_MAINFRAME,
		RUNTIME_CLASS(CInformationProjectDoc),
		RUNTIME_CLASS(CMainFrame),       // main SDI frame window
		RUNTIME_CLASS(CInformationProjectView));
	AddDocTemplate(pDocTemplate);

	// Parse command line for standard shell commands, DDE, file open
	CCommandLineInfo cmdInfo;
	ParseCommandLine(cmdInfo);

	// Dispatch commands specified on the command line
	if (!ProcessShellCommand(cmdInfo))
		return FALSE;

	// The one and only window has been initialized, so show and update it.
	m_pMainWnd->ShowWindow(SW_SHOW);
	m_pMainWnd->UpdateWindow();

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
		// No message handlers
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

// App command to run the dialog
void CInformationProjectApp::OnAppAbout()
{
	CAboutDlg aboutDlg;
	aboutDlg.DoModal();
}

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectApp message handlers


// InformationProjectDoc.cpp : implementation of the CInformationProjectDoc class
//

#include "stdafx.h"
#include "InformationProject.h"

#include "InformationProjectDoc.h"

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

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectDoc

IMPLEMENT_DYNCREATE(CInformationProjectDoc, CDocument)

BEGIN_MESSAGE_MAP(CInformationProjectDoc, CDocument)
	//{{AFX_MSG_MAP(CInformationProjectDoc)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectDoc construction/destruction

CInformationProjectDoc::CInformationProjectDoc()
{
	// TODO: add one-time construction code here

}

CInformationProjectDoc::~CInformationProjectDoc()
{
}

BOOL CInformationProjectDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	// TODO: add reinitialization code here
	// (SDI documents will reuse this document)

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectDoc serialization

void CInformationProjectDoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		// TODO: add storing code here
	}
	else
	{
		// TODO: add loading code here
	}
}

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectDoc diagnostics

#ifdef _DEBUG
void CInformationProjectDoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CInformationProjectDoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectDoc commands


// InformationProjectView.cpp : implementation of the CInformationProjectView class
//

#include "stdafx.h"
#include "InformationProject.h"

#include "InformationProjectDoc.h"
#include "InformationProjectView.h"
#include "DialogAdd.h"
#include "DialogFind.h"
#include "DialogDelete.h"
#include "DialogEdit.h"
#include "InformationRecordSet.h"

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

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectView

IMPLEMENT_DYNCREATE(CInformationProjectView, CView)

BEGIN_MESSAGE_MAP(CInformationProjectView, CView)
	//{{AFX_MSG_MAP(CInformationProjectView)
	ON_COMMAND(ID_ADD, OnAdd)
	ON_COMMAND(ID_FIND, OnFind)
	ON_COMMAND(ID_DELETE, OnDelete)
	ON_COMMAND(ID_EDIT, OnEdit)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectView construction/destruction

CInformationProjectView::CInformationProjectView():y(20),str("0000"),isFind(false),isDelete(false)
{
	// TODO: add construction code here
}

CInformationProjectView::~CInformationProjectView()
{
}

BOOL CInformationProjectView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectView drawing

void CInformationProjectView::OnDraw(CDC* pDC)
{
	CInformationProjectDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here

	pDC->TextOut(20, y, str);
}

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectView printing

BOOL CInformationProjectView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CInformationProjectView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CInformationProjectView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectView diagnostics

#ifdef _DEBUG
void CInformationProjectView::AssertValid() const
{
	CView::AssertValid();
}

void CInformationProjectView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CInformationProjectDoc* CInformationProjectView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CInformationProjectDoc)));
	return (CInformationProjectDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectView message handlers

void CInformationProjectView::OnAdd() 
{
	// TODO: Add your command handler code here
	CDialogAdd add;
	InformationRecordSet rs;

	if (add.DoModal() == IDOK)
	{
		//存放到类成员变量中
		strStudentID = add.strStudentID;
		strName = add.strName;
		strClassNum = add.strClassNum;
		strTel = add.strTel;
		strQq = add.strQq;
		strID = add.strID;
		//对数据库进行写入
		rs.Open();
		rs.AddNew();
		rs.m_StudentID = strStudentID;
		rs.m_Name = strName;
		rs.m_ClassNum = strClassNum;
		rs.m_Tel = strTel;
		rs.m_Qq = strQq;
		rs.m_ID = strID;

		rs.Update();
		rs.Close();

		MessageBox("添加成功!", "添加");
	}
	
}

void CInformationProjectView::OnFind() 
{
	// TODO: Add your command handler code here
	DialogFind find;
	InformationRecordSet rs;
	strFind = _T("");

	if (find.DoModal() == IDOK)
	{
		strFind = find.strFind;
		strFind.Format("StudentID='%s'", strFind);//小技巧
		isFind = true;
	}
	//查找符合条件的记录
	if (isFind)
	{
		rs.m_strFilter=strFind;
		rs.Open();

		while (!rs.IsEOF())
		{
			strStudentID = rs.m_StudentID;
			strName = rs.m_Name;
			strClassNum = rs.m_ClassNum;
			strTel = rs.m_Tel;
			strQq = rs.m_Qq;
			strID = rs.m_ID;
			
			str = "学号:" + strStudentID + ",姓名:" + strName + ",班级:" + strClassNum + ",手机:" + strTel + ",QQ:" + strQq + ",***:" + strID + "。";

			rs.MoveNext();
		}
		
		if (str == "0000")
		{	
			MessageBox("没有该记录!","查找");

		}

		Invalidate();//刷新一下才显示

		rs.Close();
	}
}

void CInformationProjectView::OnDelete() 
{
	// TODO: Add your command handler code here
	DialogDelete Ddelete;
	InformationRecordSet rs;
	CClientDC dc(this);

	strDelete = _T("");

	if (Ddelete.DoModal() == IDOK)
	{
		strDelete = Ddelete.strDelete;
		strDelete.Format("StudentID='%s'", strDelete);//小技巧

		//查找符合条件的记录
		rs.m_strFilter=strDelete;
		rs.Open();

		while (!rs.IsEOF())
		{
			/*
			strStudentID = rs.m_StudentID;
			strName = rs.m_Name;
			strClassNum = rs.m_ClassNum;
			strTel = rs.m_Tel;
			strQq = rs.m_Qq;
			strID = rs.m_ID;
			
			str = "学号:" + strStudentID + ",姓名:" + strName + ",班级:" + strClassNum + ",手机:" + strTel + ",QQ:" + strQq + ",***:" + strID + "。";
	*/
			rs.Delete();
			rs.MoveNext();
			MessageBox("删除成功!","删除");
			isDelete = true;
		}
		
		if (isDelete == false)
		{	
			MessageBox("没有该记录!","删除");
		}
		rs.Close();
	}	
}

void CInformationProjectView::OnEdit() 
{
	// TODO: Add your command handler code here
	DialogEdit edit;
	InformationRecordSet rs;
	strEdit = _T("");

	if (edit.DoModal() == IDOK)
	{
		strEdit = edit.strEdit;
		strEdit.Format("StudentID='%s'", strEdit);//小技巧

		//查找符合条件的记录

	
		rs.m_strFilter=strEdit;
		rs.Open();
		CDialogAdd add;	
		add.DoModal();	
		rs.Edit();
		//存放到类成员变量中
		strStudentID = add.strStudentID;
		strName = add.strName;
		strClassNum = add.strClassNum;
		strTel = add.strTel;
		strQq = add.strQq;
		strID = add.strID;
		//对数据库进行写入
		rs.m_StudentID = strStudentID;
		rs.m_Name = strName;
		rs.m_ClassNum = strClassNum;
		rs.m_Tel = strTel;
		rs.m_Qq = strQq;
		rs.m_ID = strID;

		rs.Update();		
		
		MessageBox("修改成功!","修改");

		Invalidate();//刷新一下才显示

		rs.Close();
	}
}


// InformationRecordSet.cpp : implementation file
//

#include "stdafx.h"
#include "InformationProject.h"
#include "InformationRecordSet.h"

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

/////////////////////////////////////////////////////////////////////////////
// InformationRecordSet

IMPLEMENT_DYNAMIC(InformationRecordSet, CRecordset)

InformationRecordSet::InformationRecordSet(CDatabase* pdb)
	: CRecordset(pdb)
{
	//{{AFX_FIELD_INIT(InformationRecordSet)
	m_StudentID = _T("");
	m_Name = _T("");
	m_ClassNum = _T("");
	m_Tel = _T("");
	m_Qq = _T("");
	m_ID = _T("");
	m_nFields = 6;
	//}}AFX_FIELD_INIT
	m_nDefaultType = dynaset;
}

CString InformationRecordSet::GetDefaultConnect()
{
	return _T("ODBC;DSN=MyInformation");
}

CString InformationRecordSet::GetDefaultSQL()
{
	return _T("[InformationTable]");
}

void InformationRecordSet::DoFieldExchange(CFieldExchange* pFX)
{
	//{{AFX_FIELD_MAP(InformationRecordSet)
	pFX->SetFieldType(CFieldExchange::outputColumn);
	RFX_Text(pFX, _T("[StudentID]"), m_StudentID);
	RFX_Text(pFX, _T("[Name]"), m_Name);
	RFX_Text(pFX, _T("[ClassNum]"), m_ClassNum);
	RFX_Text(pFX, _T("[Tel]"), m_Tel);
	RFX_Text(pFX, _T("[Qq]"), m_Qq);
	RFX_Text(pFX, _T("[ID]"), m_ID);
	//}}AFX_FIELD_MAP
}

/////////////////////////////////////////////////////////////////////////////
// InformationRecordSet diagnostics

#ifdef _DEBUG
void InformationRecordSet::AssertValid() const
{
	CRecordset::AssertValid();
}

void InformationRecordSet::Dump(CDumpContext& dc) const
{
	CRecordset::Dump(dc);
}
#endif //_DEBUG


// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "InformationProject.h"

#include "MainFrm.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code !
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

static UINT indicators[] =
{
	ID_SEPARATOR,           // status line indicator
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
};

/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction

CMainFrame::CMainFrame()
{
	// TODO: add member initialization code here
	
}

CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
/*	
	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
	{
		TRACE0("Failed to create toolbar\n");
		return -1;      // fail to create
	}

	if (!m_wndStatusBar.Create(this) ||
		!m_wndStatusBar.SetIndicators(indicators,
		  sizeof(indicators)/sizeof(UINT)))
	{
		TRACE0("Failed to create status bar\n");
		return -1;      // fail to create
	}

	// TODO: Delete these three lines if you don't want the toolbar to
	//  be dockable
	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
	EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndToolBar);
*/
	return 0;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics

#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
	CFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
	CFrameWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers


#if !defined(AFX_DIALOGADD_H__6090309F_F551_4A7F_8360_864745D7ED61__INCLUDED_)
#define AFX_DIALOGADD_H__6090309F_F551_4A7F_8360_864745D7ED61__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DialogAdd.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CDialogAdd dialog

class CDialogAdd : public CDialog
{
// Construction
public:
	CDialogAdd(CWnd* pParent = NULL);   // standard constructor
	CString strStudentID;
	CString strName;
	CString strClassNum;
	CString strTel;
	CString strQq;
	CString strID;

// Dialog Data
	//{{AFX_DATA(CDialogAdd)
	enum { IDD = IDD_DIALOG_ADD };
	CEdit	m_EditStudentID;
	CEdit	m_EditID;
	CEdit	m_EditQq;
	CEdit	m_EditTel;
	CEdit	m_EditClassNum;
	CEdit	m_EditName;
	//}}AFX_DATA

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CDialogAdd)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(CDialogAdd)
	virtual void OnOK();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_DIALOGADD_H__6090309F_F551_4A7F_8360_864745D7ED61__INCLUDED_)


#if !defined(AFX_DIALOGDELETE_H__15A1212A_8AC8_4E3F_8B70_67C471234FF0__INCLUDED_)
#define AFX_DIALOGDELETE_H__15A1212A_8AC8_4E3F_8B70_67C471234FF0__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DialogDelete.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// DialogDelete dialog

class DialogDelete : public CDialog
{
// Construction
public:
	DialogDelete(CWnd* pParent = NULL);   // standard constructor
	CString strDelete;
// Dialog Data
	//{{AFX_DATA(DialogDelete)
	enum { IDD = IDD_DIALOG_DELETE };
	CEdit	m_EditDelete;
	//}}AFX_DATA

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(DialogDelete)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(DialogDelete)
	virtual void OnOK();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_DIALOGDELETE_H__15A1212A_8AC8_4E3F_8B70_67C471234FF0__INCLUDED_)


#if !defined(AFX_DIALOGEDIT_H__03586D1E_15A0_4FB3_B15B_1A673C34C55F__INCLUDED_)
#define AFX_DIALOGEDIT_H__03586D1E_15A0_4FB3_B15B_1A673C34C55F__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DialogEdit.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// DialogEdit dialog

class DialogEdit : public CDialog
{
// Construction
public:
	DialogEdit(CWnd* pParent = NULL);   // standard constructor
	CString strEdit;
// Dialog Data
	//{{AFX_DATA(DialogEdit)
	enum { IDD = IDD_DIALOG_EDIT };
	CEdit	m_EditEdit;
	//}}AFX_DATA

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(DialogEdit)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(DialogEdit)
	virtual void OnOK();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_DIALOGEDIT_H__03586D1E_15A0_4FB3_B15B_1A673C34C55F__INCLUDED_)


#if !defined(AFX_DIALOGFIND_H__3C996D18_0133_48FF_ADFC_D14344FBE500__INCLUDED_)
#define AFX_DIALOGFIND_H__3C996D18_0133_48FF_ADFC_D14344FBE500__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DialogFind.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// DialogFind dialog

class DialogFind : public CDialog
{
// Construction
public:
	DialogFind(CWnd* pParent = NULL);   // standard constructor
	CString strFind;
// Dialog Data
	//{{AFX_DATA(DialogFind)
	enum { IDD = IDD_DIALOG_FIND };
	CEdit	m_EditFind;
	//}}AFX_DATA

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(DialogFind)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(DialogFind)
	virtual void OnOK();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_DIALOGFIND_H__3C996D18_0133_48FF_ADFC_D14344FBE500__INCLUDED_)


// InformationProject.h : main header file for the INFORMATIONPROJECT application
//

#if !defined(AFX_INFORMATIONPROJECT_H__D2526321_80AB_412F_B931_0DA5D4AA40CB__INCLUDED_)
#define AFX_INFORMATIONPROJECT_H__D2526321_80AB_412F_B931_0DA5D4AA40CB__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#ifndef __AFXWIN_H__
	#error include 'stdafx.h' before including this file for PCH
#endif

#include "resource.h"       // main symbols

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectApp:
// See InformationProject.cpp for the implementation of this class
//

class CInformationProjectApp : public CWinApp
{
public:
	CInformationProjectApp();

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CInformationProjectApp)
	public:
	virtual BOOL InitInstance();
	//}}AFX_VIRTUAL

// Implementation
	//{{AFX_MSG(CInformationProjectApp)
	afx_msg void OnAppAbout();
		// NOTE - the ClassWizard will add and remove member functions here.
		//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_INFORMATIONPROJECT_H__D2526321_80AB_412F_B931_0DA5D4AA40CB__INCLUDED_)


// InformationProjectDoc.h : interface of the CInformationProjectDoc class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_INFORMATIONPROJECTDOC_H__B3B9F6E7_4CD0_42F8_BAF6_4CF6339E33CD__INCLUDED_)
#define AFX_INFORMATIONPROJECTDOC_H__B3B9F6E7_4CD0_42F8_BAF6_4CF6339E33CD__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CInformationProjectDoc : public CDocument
{
protected: // create from serialization only
	CInformationProjectDoc();
	DECLARE_DYNCREATE(CInformationProjectDoc)

// Attributes
public:

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CInformationProjectDoc)
	public:
	virtual BOOL OnNewDocument();
	virtual void Serialize(CArchive& ar);
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CInformationProjectDoc();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	//{{AFX_MSG(CInformationProjectDoc)
		// NOTE - the ClassWizard will add and remove member functions here.
		//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_INFORMATIONPROJECTDOC_H__B3B9F6E7_4CD0_42F8_BAF6_4CF6339E33CD__INCLUDED_)


// InformationProjectView.h : interface of the CInformationProjectView class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_INFORMATIONPROJECTVIEW_H__D7A72F51_3587_4A4D_B1FD_260E314D6610__INCLUDED_)
#define AFX_INFORMATIONPROJECTVIEW_H__D7A72F51_3587_4A4D_B1FD_260E314D6610__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CInformationProjectView : public CView
{
protected: // create from serialization only
	CInformationProjectView();
	DECLARE_DYNCREATE(CInformationProjectView)

// Attributes
public:
	CInformationProjectDoc* GetDocument();

// Operations
public:
	int y;
	CString str;
	bool isFind;
	bool isDelete;

	CString strStudentID;
	CString strName;
	CString strClassNum;
	CString strTel;
	CString strQq;
	CString strID;

	CString strFind;
	CString strDelete;
	CString strEdit;

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CInformationProjectView)
	public:
	virtual void OnDraw(CDC* pDC);  // overridden to draw this view
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	protected:
	virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
	virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
	virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CInformationProjectView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	//{{AFX_MSG(CInformationProjectView)
	afx_msg void OnAdd();
	afx_msg void OnFind();
	afx_msg void OnDelete();
	afx_msg void OnEdit();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

#ifndef _DEBUG  // debug version in InformationProjectView.cpp
inline CInformationProjectDoc* CInformationProjectView::GetDocument()
   { return (CInformationProjectDoc*)m_pDocument; }
#endif

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_INFORMATIONPROJECTVIEW_H__D7A72F51_3587_4A4D_B1FD_260E314D6610__INCLUDED_)


#if !defined(AFX_INFORMATIONRECORDSET_H__B2ECF318_E73E_497F_B5C1_F8411786BFE7__INCLUDED_)
#define AFX_INFORMATIONRECORDSET_H__B2ECF318_E73E_497F_B5C1_F8411786BFE7__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// InformationRecordSet.h : header file
//
#include <afxdb.h>
/////////////////////////////////////////////////////////////////////////////
// InformationRecordSet recordset

class InformationRecordSet : public CRecordset
{
public:
	InformationRecordSet(CDatabase* pDatabase = NULL);
	DECLARE_DYNAMIC(InformationRecordSet)

// Field/Param Data
	//{{AFX_FIELD(InformationRecordSet, CRecordset)
	CString	m_StudentID;
	CString	m_Name;
	CString	m_ClassNum;
	CString	m_Tel;
	CString	m_Qq;
	CString	m_ID;
	//}}AFX_FIELD

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(InformationRecordSet)
	public:
	virtual CString GetDefaultConnect();    // Default connection string
	virtual CString GetDefaultSQL();    // Default SQL for Recordset
	virtual void DoFieldExchange(CFieldExchange* pFX);  // RFX support
	//}}AFX_VIRTUAL

// Implementation
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_INFORMATIONRECORDSET_H__B2ECF318_E73E_497F_B5C1_F8411786BFE7__INCLUDED_)


// MainFrm.h : interface of the CMainFrame class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_MAINFRM_H__FB24BCD3_F334_46AE_8A92_45C8EA9A22E3__INCLUDED_)
#define AFX_MAINFRM_H__FB24BCD3_F334_46AE_8A92_45C8EA9A22E3__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CMainFrame : public CFrameWnd
{
	
protected: // create from serialization only
	CMainFrame();
	DECLARE_DYNCREATE(CMainFrame)

// Attributes
public:

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CMainFrame)
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CMainFrame();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:  // control bar embedded members
	CStatusBar  m_wndStatusBar;
	CToolBar    m_wndToolBar;

// Generated message map functions
protected:
	//{{AFX_MSG(CMainFrame)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
		// NOTE - the ClassWizard will add and remove member functions here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_MAINFRM_H__FB24BCD3_F334_46AE_8A92_45C8EA9A22E3__INCLUDED_)


//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by InformationProject.rc
//
#define IDD_ABOUTBOX                    100
#define IDR_MAINFRAME                   128
#define IDR_INFORMTYPE                  129
#define IDD_DIALOG_ADD                  130
#define IDD_DIALOG_FIND                 131
#define IDD_DIALOG_DELETE               132
#define IDD_DIALOG_EDIT                 133
#define IDC_EDIT1                       1000
#define IDC_EDIT2                       1001
#define IDC_EDIT3                       1002
#define IDC_EDIT4                       1003
#define IDC_EDIT5                       1004
#define IDC_EDIT6                       1005
#define ID_ADD                          32771
#define ID_FIND                         32772
#define ID_DELETE                       32773
#define ID_EDIT                         32774

// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_3D_CONTROLS                     1
#define _APS_NEXT_RESOURCE_VALUE        132
#define _APS_NEXT_COMMAND_VALUE         32775
#define _APS_NEXT_CONTROL_VALUE         1001
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif


更改后的view.cpp:功能显示当前数据库记录个数

// InformationProjectView.cpp : implementation of the CInformationProjectView class
//

#include "stdafx.h"
#include "InformationProject.h"

#include "InformationProjectDoc.h"
#include "InformationProjectView.h"
#include "DialogAdd.h"
#include "DialogFind.h"
#include "DialogDelete.h"
#include "DialogEdit.h"
#include "InformationRecordSet.h"
#define WM_NC 1001   // 托盘区触发的自定义消息
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectView

IMPLEMENT_DYNCREATE(CInformationProjectView, CView)

BEGIN_MESSAGE_MAP(CInformationProjectView, CView)
	//{{AFX_MSG_MAP(CInformationProjectView)
	ON_COMMAND(ID_ADD, OnAdd)
	ON_COMMAND(ID_FIND, OnFind)
	ON_COMMAND(ID_DELETE, OnDelete)
	ON_COMMAND(ID_EDIT, OnEdit)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectView construction/destruction

CInformationProjectView::CInformationProjectView():y(20),str("0000"),isFind(false),isDelete(false)
{
	// TODO: add construction code here
}

CInformationProjectView::~CInformationProjectView()
{
}

BOOL CInformationProjectView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
    
	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectView drawing

void CInformationProjectView::OnDraw(CDC* pDC)
{
	CInformationProjectDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	InformationRecordSet rs;
	CRect rect;
	this->GetWindowRect(&rect);
	int x;
	x = rect.Height() - 30;
	rs.Open();
	while(!rs.IsEOF())
	{
		rs.MoveNext();
	}

	int count = rs.GetRecordCount();
	CString strCount;
	strCount.Format("当前共有%d条学生信息。", count);
	pDC->TextOut(20, y, str);
	pDC->TextOut(20,x, strCount);
}

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectView printing

BOOL CInformationProjectView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CInformationProjectView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CInformationProjectView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectView diagnostics

#ifdef _DEBUG
void CInformationProjectView::AssertValid() const
{
	CView::AssertValid();
}

void CInformationProjectView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CInformationProjectDoc* CInformationProjectView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CInformationProjectDoc)));
	return (CInformationProjectDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CInformationProjectView message handlers

void CInformationProjectView::OnAdd() 
{
	// TODO: Add your command handler code here
	CDialogAdd add;
	InformationRecordSet rs;

	if (add.DoModal() == IDOK)
	{
		//存放到类成员变量中
		strStudentID = add.strStudentID;
		strName = add.strName;
		strClassNum = add.strClassNum;
		strTel = add.strTel;
		strQq = add.strQq;
		strID = add.strID;
		//对数据库进行写入
		rs.Open();
		rs.AddNew();
		rs.m_StudentID = strStudentID;
		rs.m_Name = strName;
		rs.m_ClassNum = strClassNum;
		rs.m_Tel = strTel;
		rs.m_Qq = strQq;
		rs.m_ID = strID;

		rs.Update();
		rs.Close();

		MessageBox("添加成功!", "添加");
	}
	Invalidate();
}

void CInformationProjectView::OnFind() 
{
	// TODO: Add your command handler code here
	DialogFind find;
	InformationRecordSet rs;
	strFind = _T("");

	if (find.DoModal() == IDOK)
	{
		strFind = find.strFind;
		strFind.Format("StudentID='%s'", strFind);//小技巧
		isFind = true;
	}
	//查找符合条件的记录
	if (isFind)
	{
		rs.m_strFilter=strFind;
		rs.Open();

		while (!rs.IsEOF())
		{
			strStudentID = rs.m_StudentID;
			strName = rs.m_Name;
			strClassNum = rs.m_ClassNum;
			strTel = rs.m_Tel;
			strQq = rs.m_Qq;
			strID = rs.m_ID;
			
			str = "学号:" + strStudentID + ",姓名:" + strName + ",班级:" + strClassNum + ",手机:" + strTel + ",QQ:" + strQq + ",***:" + strID + "。";

			rs.MoveNext();
		}
		
		if (str == "0000")
		{	
			MessageBox("没有该记录!","查找");

		}

		Invalidate();//刷新一下才显示

		rs.Close();
	}
}

void CInformationProjectView::OnDelete() 
{
	// TODO: Add your command handler code here
	DialogDelete Ddelete;
	InformationRecordSet rs;
	CClientDC dc(this);

	strDelete = _T("");

	if (Ddelete.DoModal() == IDOK)
	{
		strDelete = Ddelete.strDelete;
		strDelete.Format("StudentID='%s'", strDelete);//小技巧

		//查找符合条件的记录
		rs.m_strFilter=strDelete;
		rs.Open();

		while (!rs.IsEOF())
		{
			/*
			strStudentID = rs.m_StudentID;
			strName = rs.m_Name;
			strClassNum = rs.m_ClassNum;
			strTel = rs.m_Tel;
			strQq = rs.m_Qq;
			strID = rs.m_ID;
			
			str = "学号:" + strStudentID + ",姓名:" + strName + ",班级:" + strClassNum + ",手机:" + strTel + ",QQ:" + strQq + ",***:" + strID + "。";
	*/
			rs.Delete();
			rs.MoveNext();
			MessageBox("删除成功!","删除");
			isDelete = true;
		}
		
		if (isDelete == false)
		{	
			MessageBox("没有该记录!","删除");
		}
		rs.Close();
	}	
	Invalidate();
}

void CInformationProjectView::OnEdit() 
{
	// TODO: Add your command handler code here
	DialogEdit edit;
	InformationRecordSet rs;
	strEdit = _T("");

	if (edit.DoModal() == IDOK)
	{
		strEdit = edit.strEdit;
		strEdit.Format("StudentID='%s'", strEdit);//小技巧

		//查找符合条件的记录

	
		rs.m_strFilter=strEdit;
		rs.Open();
		CDialogAdd add;	
		add.DoModal();	
		rs.Edit();
		//存放到类成员变量中
		strStudentID = add.strStudentID;
		strName = add.strName;
		strClassNum = add.strClassNum;
		strTel = add.strTel;
		strQq = add.strQq;
		strID = add.strID;
		//对数据库进行写入
		rs.m_StudentID = strStudentID;
		rs.m_Name = strName;
		rs.m_ClassNum = strClassNum;
		rs.m_Tel = strTel;
		rs.m_Qq = strQq;
		rs.m_ID = strID;

		rs.Update();		
		
		MessageBox("修改成功!","修改");

		Invalidate();//刷新一下才显示

		rs.Close();
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: