📄 dialogcho.cpp
字号:
var.iVal = m_StuID;
m_pRecordset->PutCollect("StuID", var.iVal);
//写入PassOrNot字段
m_pRecordset->PutCollect("PassOrNot", _variant_t(m_PassOrNot));
//写入Score字段
var.iVal = m_Score;
m_pRecordset->PutCollect("Score", var.iVal);
//更新SQL数据库
m_pRecordset->Update();
//当前记录移动到最后
m_pRecordset->MoveLast();
AfxMessageBox("插入成功!");
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
}
//////////////////////////
//
//执行删除功能
//
/////////////////////////
void CDialogCHO::Delete()
{
//定义变量
_variant_t var;
CString str;
//判断当前是否有记录
if(m_CouID == 0)
{
MessageBox(" 没有记录!");
return;
}
try
{
//
// 删除当前行记录
//
m_pRecordset->Delete(adAffectCurrent);
m_pRecordset->Update();
m_pRecordset->MoveFirst();
//判断删除后表内数据是否为空
if(m_pRecordset->BOF)
{
AfxMessageBox("表内数据已经为空!");
m_btnQuery.EnableWindow(FALSE);
m_btnDelete.EnableWindow(FALSE);
m_btnModify.EnableWindow(FALSE);
m_btnFirst.EnableWindow(FALSE);
m_btnPre.EnableWindow(FALSE);
m_btnNext.EnableWindow(FALSE);
m_btnLast.EnableWindow(FALSE);
m_btnOK.SetFocus();
return;
}
//显示最后一条记录
m_pRecordset->MoveLast();
var = m_pRecordset->GetCollect("CouID");
if(var.vt != VT_NULL)
m_CouID = var.iVal ;
var = m_pRecordset->GetCollect("StuID");
if(var.vt != VT_NULL)
m_StuID = var.iVal;
var = m_pRecordset->GetCollect("PassOrNot");
str = (LPCSTR)_bstr_t(var);
m_PassOrNot = str;
var = m_pRecordset->GetCollect("Score");
m_Score = var.iVal;
UpdateData(false);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
//////////////////////////
//
//执行修改功能
//
/////////////////////////
void CDialogCHO::Modify()
{
//定义变量
_variant_t var;
CString str;
//更新控件变量的值
UpdateData(true);
if(m_CouID == 0 || m_StuID == 0)
{
AfxMessageBox("学号和课程号一个也不能为空!");
return;
}
//
// 修改当前记录的字段值
//
try
{
var.iVal = m_CouID;
m_pRecordset->PutCollect("CouID", var.iVal);
var.iVal = m_StuID;
m_pRecordset->PutCollect("StuID", var.iVal);
m_pRecordset->PutCollect("PassOrNot", _variant_t(m_PassOrNot));
var.iVal = m_Score;
m_pRecordset->PutCollect("Score", var.iVal);
m_pRecordset->Update();
AfxMessageBox("修改成功!");
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
void CDialogCHO::OnButtonOK()
{
// TODO: ADD your control notification handler code here
if(FOUNCTION == SEARCH)
{
Query();
}
else if(FOUNCTION == ADD)
{
Add();
}
else if(FOUNCTION == DEL)
{
Delete();
}
else if(FOUNCTION == MODIFY)
{
Modify();
}
}
void CDialogCHO::OnButtonGoBack()
{
// TODO: ADD your control notification handler code here
//关闭记录集,退出
m_pRecordset->Close();
OnCancel();
}
void CDialogCHO::OnButtonAdd()
{
// TODO: ADD your control notification handler code here
//
//给所有显示控件一个添加之前的初值
//
m_CouID = 0;
m_Score = 0;
m_StuID = 0;
m_PassOrNot = "";
UpdateData(false);
//更新FOUNCTION值
FOUNCTION = ADD;
//修改各个矩形按钮的属性
m_btnQuery.EnableWindow(FALSE);
m_btnAdd.SetState(TRUE);
m_btnDelete.EnableWindow(FALSE);
m_btnModify.EnableWindow(FALSE);
m_btnFirst.EnableWindow(FALSE);
m_btnPre.EnableWindow(FALSE);
m_btnNext.EnableWindow(FALSE);
m_btnLast.EnableWindow(FALSE);
m_btnOK.SetFocus();
}
void CDialogCHO::OnButtonDelete()
{
// TODO: ADD your control notification handler code here
if(MessageBox("真的删除?\n是请按“是”,\n否请按“否”!", NULL, MB_YESNO | MB_ICONQUESTION) == IDYES)
{
//更新FOUNCTION值
FOUNCTION = DEL;
OnButtonOK();
}
else
{
OnButtonCancel();
}
}
void CDialogCHO::OnButtonModify()
{
// TODO: ADD your control notification handler code here
//更新FOUNCTION值
FOUNCTION = MODIFY;
m_ctlStuID.SetReadOnly();
m_ctlCouID.SetReadOnly();
//修改各个矩形按钮的属性
m_btnQuery.EnableWindow(FALSE);
m_btnAdd.EnableWindow(FALSE);
m_btnDelete.EnableWindow(FALSE);
m_btnModify.SetState(TRUE);
m_btnFirst.EnableWindow(FALSE);
m_btnPre.EnableWindow(FALSE);
m_btnNext.EnableWindow(FALSE);
m_btnLast.EnableWindow(FALSE);
m_btnOK.SetFocus();
}
void CDialogCHO::OnButtonFirst()
{
// TODO: ADD your control notification handler code here
m_pRecordset->MoveFirst();
_variant_t var;
CString str;
try
{
var = m_pRecordset->GetCollect("CouID");
if(var.vt != VT_NULL)
m_CouID = var.iVal ;
var = m_pRecordset->GetCollect("StuID");
if(var.vt != VT_NULL)
m_StuID = var.iVal;
var = m_pRecordset->GetCollect("PassOrNot");
str = (LPCSTR)_bstr_t(var);
m_PassOrNot = str;
var = m_pRecordset->GetCollect("Score");
m_Score = var.iVal;
UpdateData(false);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
void CDialogCHO::OnButtonPre()
{
// TODO: ADD your control notification handler code here
m_pRecordset->MovePrevious();
_variant_t var;
CString str;
if(m_pRecordset->BOF)
{
MessageBox("已经是首记录!");
m_pRecordset->MoveFirst();
}
try
{
var = m_pRecordset->GetCollect("CouID");
if(var.vt != VT_NULL)
m_CouID = var.iVal;
var = m_pRecordset->GetCollect("StuID");
if(var.vt != VT_NULL)
m_StuID = var.iVal;
var = m_pRecordset->GetCollect("PassOrNot");
str = (LPCSTR)_bstr_t(var);
m_PassOrNot = str;
var = m_pRecordset->GetCollect("Score");
m_Score = var.iVal;
UpdateData(false);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
void CDialogCHO::OnButtonNext()
{
// TODO: ADD your control notification handler code here
m_pRecordset->MoveNext();
_variant_t var;
CString str;
if(m_pRecordset->adoEOF)
{
MessageBox("已经是末记录!");
m_pRecordset->MoveLast();
}
try
{
var = m_pRecordset->GetCollect("CouID");
if(var.vt != VT_NULL)
m_CouID = var.iVal;
var = m_pRecordset->GetCollect("StuID");
m_StuID = var.iVal;
var = m_pRecordset->GetCollect("PassOrNot");
str = (LPCSTR)_bstr_t(var);
m_PassOrNot = str;
var = m_pRecordset->GetCollect("Score");
m_Score = var.iVal;
UpdateData(false);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
void CDialogCHO::OnButtonLast()
{
// TODO: ADD your control notification handler code here
m_pRecordset->MoveLast();
_variant_t var;
CString str;
try
{
var = m_pRecordset->GetCollect("CouID");
if(var.vt != VT_NULL)
m_CouID = var.iVal;
var = m_pRecordset->GetCollect("StuID");
if(var.vt != VT_NULL)
m_StuID = var.iVal;
var = m_pRecordset->GetCollect("PassOrNot");
str = (LPCSTR)_bstr_t(var);
m_PassOrNot = str;
var = m_pRecordset->GetCollect("Score");
m_Score = var.iVal;
UpdateData(false);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
void CDialogCHO::OnButtonCancel()
{
// TODO: ADD your control notification handler code here
_variant_t var;
CString str;
FOUNCTION=INIT;
//如果表为空,返回不做下面的操作
if(m_pRecordset->BOF)
{
m_btnAdd.SetState(false);
return;
}
//修改各个矩形按钮的属性
m_btnQuery.EnableWindow(true);
m_btnAdd.EnableWindow(true);
m_btnDelete.EnableWindow(true);
m_btnModify.EnableWindow(true);
m_btnFirst.EnableWindow(true);
m_btnPre.EnableWindow(true);
m_btnNext.EnableWindow(true);
m_btnLast.EnableWindow(true);
m_btnQuery.SetState(false);
m_btnAdd.SetState(false);
m_btnDelete.SetState(false);
m_btnModify.SetState(false);
m_btnFirst.SetState(false);
m_btnPre.SetState(false);
m_btnNext.SetState(false);
m_btnLast.SetState(false);
m_ctlStuID.SetReadOnly(FALSE);
m_ctlCouID.SetReadOnly(FALSE);
m_btnOK.SetFocus();
//
//把m_pRecordset所指当前记录显示出来
//
if(m_pRecordset->adoEOF)
{
m_pRecordset->MoveLast();
}
try
{
var = m_pRecordset->GetCollect("CouID");
if(var.vt != VT_NULL)
m_CouID = var.iVal ;
var = m_pRecordset->GetCollect("StuID");
if(var.vt != VT_NULL)
m_StuID = var.iVal;
var = m_pRecordset->GetCollect("PassOrNot");
str = (LPCSTR)_bstr_t(var);
m_PassOrNot = str;
var = m_pRecordset->GetCollect("Score");
m_Score = var.iVal;
UpdateData(false);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -