📄 testview.cpp
字号:
// TestView.cpp : CTestView 类的实现
//
#include "stdafx.h"
#include "Test.h"
#include "TestSet.h"
#include "TestDoc.h"
#include "TestView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CTestView
IMPLEMENT_DYNCREATE(CTestView, CRecordView)
BEGIN_MESSAGE_MAP(CTestView, CRecordView)
// 标准打印命令
ON_COMMAND(ID_FILE_PRINT, CRecordView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView::OnFilePrintPreview)
ON_BN_CLICKED(IDC_BTNFIRST, OnBnClickedBtnfirst)
ON_BN_CLICKED(IDC_BTNPRE, OnBnClickedBtnpre)
ON_BN_CLICKED(IDC_BTNNEXT, OnBnClickedBtnnext)
ON_BN_CLICKED(IDC_BTNEND, OnBnClickedBtnend)
ON_BN_CLICKED(IDC_BTNADD, OnBnClickedBtnadd)
ON_BN_CLICKED(IDC_BTNDELETE, OnBnClickedBtndelete)
ON_BN_CLICKED(IDC_BTNEDIT, OnBnClickedBtnedit)
ON_BN_CLICKED(IDC_BTNSORT, OnBnClickedBtnsort)
ON_BN_CLICKED(IDC_BTNFILTER, OnBnClickedBtnfilter)
ON_BN_CLICKED(IDC_BTNSQLQUERY, OnBnClickedBtnsqlquery)
END_MESSAGE_MAP()
// CTestView 构造/销毁
CTestView::CTestView()
: CRecordView(CTestView::IDD)
{
m_pSet = NULL;
// TODO: 在此处添加构造代码
}
CTestView::~CTestView()
{
}
void CTestView::DoDataExchange(CDataExchange* pDX)
{
CRecordView::DoDataExchange(pDX);
// 可以在此处插入 DDX_Field* 函数以将控件“连接”到数据库字段,例如
// DDX_FieldText(pDX, IDC_MYEDITBOX, m_pSet->m_szColumn1, m_pSet)
// DDX_FieldCheck(pDX, IDC_MYCHECKBOX, m_pSet->m_bColumn2, m_pSet);
// 有关更多信息,请参阅 MSDN 和 ODBC 示例
}
BOOL CTestView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或
// 样式
return CRecordView::PreCreateWindow(cs);
}
void CTestView::OnInitialUpdate()
{
m_pSet = &GetDocument()->m_TestSet;
CRecordView::OnInitialUpdate();
}
// CTestView 打印
BOOL CTestView::OnPreparePrinting(CPrintInfo* pInfo)
{
// 默认准备
return DoPreparePrinting(pInfo);
}
void CTestView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: 打印前添加额外的初始化
}
void CTestView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: 打印后添加清除过程
}
// CTestView 诊断
#ifdef _DEBUG
void CTestView::AssertValid() const
{
CRecordView::AssertValid();
}
void CTestView::Dump(CDumpContext& dc) const
{
CRecordView::Dump(dc);
}
CTestDoc* CTestView::GetDocument() const // 非调试版本是内联的
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTestDoc)));
return (CTestDoc*)m_pDocument;
}
#endif //_DEBUG
// CTestView 数据库支持
CRecordset* CTestView::OnGetRecordset()
{
return m_pSet;
}
// CTestView 消息处理程序
//首条记录
void CTestView::OnBnClickedBtnfirst()
{
m_pSet->Move(0,SQL_FETCH_FIRST);
CString StrInfo;
StrInfo.Format("姓名:%s,职务:%s",m_pSet->column1,m_pSet->column2);
MessageBox(StrInfo,"信息提示",MB_OK);
}
//前一记录
void CTestView::OnBnClickedBtnpre()
{
if(m_pSet->IsBOF())
{
MessageBox("已经是首条记录!","信息提示",MB_OK);
return;
}
m_pSet->MovePrev();
CString StrInfo;
StrInfo.Format("姓名:%s,职务:%s",m_pSet->column1,m_pSet->column2);
MessageBox(StrInfo,"信息提示",MB_OK);
}
//下一记录
void CTestView::OnBnClickedBtnnext()
{
if(m_pSet->IsEOF())
{
MessageBox("已经是末条记录!","信息提示",MB_OK);
return;
}
m_pSet->MoveNext();
CString StrInfo;
StrInfo.Format("姓名:%s,职务:%s",m_pSet->column1,m_pSet->column2);
MessageBox(StrInfo,"信息提示",MB_OK);
}
//尾条记录
void CTestView::OnBnClickedBtnend()
{
m_pSet->MoveLast();
CString StrInfo;
StrInfo.Format("姓名:%s,职务:%s",m_pSet->column1,m_pSet->column2);
MessageBox(StrInfo,"信息提示",MB_OK);
}
void CTestView::OnBnClickedBtnadd()
{
//增加新记录到数据库中
m_pSet->AddNew();
//设置新记录的字段值
m_pSet->SetFieldNull(&(m_pSet->m_ID),FALSE);
m_pSet->column1="王彬";
m_pSet->column2="技术总监";
if(!m_pSet->Update()||!m_pSet->Requery())
{
MessageBox("更新数据时出现错误!","信息提示",MB_OK);
return;
}
MessageBox("执行增加记录操作成功!","信息提示",MB_OK);
//移动到新记录
m_pSet->MoveLast();
}
void CTestView::OnBnClickedBtndelete()
{
if(MessageBox("是否需要真正删除当前记录?","信息提示",MB_ICONWARNING+MB_YESNO+MB_DEFBUTTON2)==IDNO)
{
return;
}
//删除当前记录
m_pSet->Delete();
m_pSet->Requery();
MessageBox("数据库中的当前记录已经被成功删除","信息提示",MB_OK);
m_pSet->MoveFirst();
}
void CTestView::OnBnClickedBtnedit()
{
//修改数据库中的记录
m_pSet->Edit();
//设置记录的新字段值
m_pSet->column2="财务部长";
//提交新记录并保存到数据库中,更新数据库
if(!m_pSet->Update()||!m_pSet->Requery())
{
MessageBox("更新数据时出现错误!","信息提示",MB_OK);
return;
}
MessageBox("执行修改记录操作成功!","信息提示",MB_OK);
}
void CTestView::OnBnClickedBtnsort()
{
//关闭记录集
m_pSet->Close();
//设置排序标准
m_pSet->m_strSort="职务";
//重新打开记录集
m_pSet->Open();
}
void CTestView::OnBnClickedBtnfilter()
{
CString strField="职务";
CString strValue="财务部长";
CString strFilter;
strFilter=strField+"='"+strValue+"'";
//关闭记录集
m_pSet->Close();
//设置过滤标准
m_pSet->m_strFilter=strFilter;
//打开记录集
m_pSet->Open();
CString StrInfo;
StrInfo.Format("姓名:%s,职务:%s",m_pSet->column1,m_pSet->column2);
MessageBox(StrInfo,"信息提示",MB_OK);
m_pSet->Close();
m_pSet->m_strFilter="";
m_pSet->Open();
}
void CTestView::OnBnClickedBtnsqlquery()
{
m_pSet->Close();
m_pSet->Open(CRecordset::dynaset,"SELECT 雇员.雇员ID,雇员.名字 FROM 雇员 WHERE 雇员.职务 LIKE '财务部长'");
CString StrInfo;
StrInfo.Format("姓名:%s",m_pSet->column1);
MessageBox(StrInfo,"信息提示",MB_OK);
m_pSet->Close();
m_pSet->m_strFilter="";
m_pSet->Open();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -