📄 course.cpp
字号:
// Course.cpp : implementation file
//
#include "stdafx.h"
#include "SC.h"
#include "Course.h"
#include "CourseSearch.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCourse dialog
CCourseSearch cc;
CCourse::CCourse(CWnd* pParent /*=NULL*/)
: CDialog(CCourse::IDD, pParent)
{
//{{AFX_DATA_INIT(CCourse)
m_strCno = _T("");
m_strCname = _T("");
m_strCpno = _T("");
m_strCcredit = _T("");
//}}AFX_DATA_INIT
}
void CCourse::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCourse)
DDX_Control(pDX, IDC_COURSE_LIST, m_Clist);
DDX_Text(pDX, IDC_CNO, m_strCno);
DDX_Text(pDX, IDC_CNAME, m_strCname);
DDX_CBString(pDX, IDC_CPNO, m_strCpno);
DDX_Text(pDX, IDC_CCREDIT, m_strCcredit);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCourse, CDialog)
//{{AFX_MSG_MAP(CCourse)
ON_BN_CLICKED(IDC_C_ADD, OnCAdd)
ON_BN_CLICKED(IDC_C_CHANGE, OnCChange)
ON_NOTIFY(NM_CLICK, IDC_COURSE_LIST, OnClickCourseList)
ON_BN_CLICKED(IDC_C_SEARCH, OnCSearch)
ON_BN_CLICKED(IDC_C_SEARCH_2, OnCSearch2)
ON_BN_CLICKED(IDC_C_DELETE, OnCDelete)
ON_BN_CLICKED(IDC_C_ALL, OnCAll)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCourse message handlers
BOOL CCourse::OnInitDialog()
{
CDialog::OnInitDialog();
m_Clist.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
m_Clist.InsertColumn(0,"课程号(Cno)",LVCFMT_CENTER,100,0);
m_Clist.InsertColumn(1,"课程名称(Cname)",LVCFMT_CENTER,100,1);
m_Clist.InsertColumn(2,"先行课(Cpno)",LVCFMT_CENTER,100,2);
m_Clist.InsertColumn(3,"学分(Ccredit)",LVCFMT_CENTER,100,3);
DisplayRecord();
return TRUE;
}
void CCourse::DisplayRecord()
{
CComboBox *cpno=(CComboBox*)GetDlgItem(IDC_CPNO);
//显示记录
m_AdoConn.OnInitADOConn();
CString sql;
sql.Format("select * from Course");
//打开记录集
m_pRecordset=m_AdoConn.GetRecordSet((_bstr_t)sql);
m_pRecordset->MoveFirst();
int i=0;
m_Clist.DeleteAllItems();
while(m_AdoConn.m_pRecordset->adoEOF==0)
{
m_Clist.InsertItem(i,"");
m_Clist.SetItemText(i,0,(char*)(_bstr_t)m_pRecordset->GetCollect("Cno"));
m_Clist.SetItemText(i,1,(char*)(_bstr_t)m_pRecordset->GetCollect("Cname"));
if(m_pRecordset->GetCollect("Cpno").vt!=VT_NULL)
m_Clist.SetItemText(i,2,(char*)(_bstr_t)m_pRecordset->GetCollect("Cpno"));
else m_Clist.SetItemText(i,2,"");
m_Clist.SetItemText(i,3,(char*)(_bstr_t)m_pRecordset->GetCollect("Ccredit"));
//为先行课下拉列表添加选项
cpno->InsertString(i,(char*)(_bstr_t)m_pRecordset->GetCollect("Cno"));
m_pRecordset->MoveNext();
i++;
}
m_AdoConn.ExitConnect();
}
void CCourse::OnCAdd()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_strCno.IsEmpty()==1||m_strCname.IsEmpty()==1||m_strCcredit.IsEmpty()==1) return;
m_AdoConn.OnInitADOConn();
_bstr_t sql;
sql="select * from Course";
m_pRecordset=m_AdoConn.GetRecordSet(sql);
while(m_AdoConn.m_pRecordset->adoEOF==0)
{
if((char*)(_bstr_t)m_pRecordset->GetCollect("Cno")==m_strCno)
return;
else m_pRecordset->MoveNext();
}
if(m_strCpno.IsEmpty()==0)
sql="INSERT INTO COURSE VALUES("+m_strCno+",'"+m_strCname+"',"
+m_strCpno+","+m_strCcredit+")";
else sql="INSERT INTO COURSE VALUES("+m_strCno+",'"+m_strCname+"',NULL,"
+m_strCcredit+")";
MessageBox(sql);
m_AdoConn.ExecuteSQL(sql);
int count=m_Clist.GetItemCount();
m_Clist.InsertItem(count,"");
m_Clist.SetItemText(count,0,m_strCno);
m_Clist.SetItemText(count,1,m_strCname);
m_Clist.SetItemText(count,2,m_strCpno);
m_Clist.SetItemText(count,3,m_strCcredit);
}
void CCourse::OnCChange()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_strCno.IsEmpty()==1||m_strCname.IsEmpty()==1||m_strCcredit.IsEmpty()==1) return;
m_AdoConn.OnInitADOConn();
_bstr_t sql;
if(m_strCpno.IsEmpty()==0)
sql="UPDATE COURSE SET Cno='"+m_strCno+"',Cname='"+m_strCname+"',Cpno='"
+m_strCpno+"',Ccredit='"+m_strCcredit+"' WHERE Cno="+m_strCno;
else sql="UPDATE COURSE SET Cno='"+m_strCno+"',Cname='"+m_strCname
+"',Ccredit='"+m_strCcredit+"' WHERE Cno="+m_strCno;
m_AdoConn.ExecuteSQL(sql);
sql="select * from Course";
m_pRecordset=m_AdoConn.GetRecordSet(sql);
while(m_AdoConn.m_pRecordset->adoEOF==0)
{
if((char*)(_bstr_t)m_pRecordset->GetCollect("Cno")==m_strCno)
{
int count=m_Clist.GetNextItem(-1,LVNI_SELECTED);
m_Clist.SetItemText(count,0,m_strCno);
m_Clist.SetItemText(count,1,m_strCname);
m_Clist.SetItemText(count,2,m_strCpno);
m_Clist.SetItemText(count,3,m_strCcredit);
return;
}
else m_pRecordset->MoveNext();
}
m_AdoConn.ExitConnect();
}
void CCourse::OnClickCourseList(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
CListCtrl *r=(CListCtrl*)GetDlgItem(IDC_COURSE_LIST);
//获得当前选中项的编号
int i=r->GetNextItem(-1,LVNI_SELECTED);
CString temp_no=r->GetItemText(i,0);
m_AdoConn.OnInitADOConn();
CString sql;
sql.Format("select * from Course");
//打开记录集
m_pRecordset=m_AdoConn.GetRecordSet((_bstr_t)sql);
m_pRecordset->MoveFirst();
int j=0;
while((char*)(_bstr_t)m_pRecordset->GetCollect("Cno")!=temp_no)
{
m_pRecordset->MoveNext();
}
//改变编辑框显示
CEdit *no=(CEdit*)GetDlgItem(IDC_CNO);
CEdit *name=(CEdit*)GetDlgItem(IDC_CNAME);
CComboBox *pno=(CComboBox*)GetDlgItem(IDC_CPNO);
CEdit *credit=(CEdit*)GetDlgItem(IDC_CCREDIT);
no->SetWindowText((char*)(_bstr_t)m_pRecordset->GetCollect("Cno"));
name->SetWindowText((char*)(_bstr_t)m_pRecordset->GetCollect("Cname"));
if(m_pRecordset->GetCollect("Cpno").vt!=VT_NULL)
pno->SetWindowText((char*)(_bstr_t)m_pRecordset->GetCollect("Cpno"));
else pno->SetWindowText("");
credit->SetWindowText((char*)(_bstr_t)m_pRecordset->GetCollect("Ccredit"));
UpdateData(TRUE);
*pResult = 0;
}
void CCourse::OnCSearch()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(cc.m_SQL.IsEmpty()==1)
{
AfxMessageBox("请设置查询条件!");
return;
}
m_AdoConn.OnInitADOConn();
_bstr_t sql;
sql=cc.m_SQL;
MessageBox(sql);
m_AdoConn.ExecuteSQL(sql);
int i=0;
m_pRecordset=m_AdoConn.GetRecordSet(sql);
m_Clist.DeleteAllItems();
while(m_AdoConn.m_pRecordset->adoEOF==0)
{
m_Clist.InsertItem(i,"");
m_Clist.SetItemText(i,0,(char*)(_bstr_t)m_pRecordset->GetCollect("Cno"));
m_Clist.SetItemText(i,1,(char*)(_bstr_t)m_pRecordset->GetCollect("Cname"));
if(m_pRecordset->GetCollect("Cpno").vt!=VT_NULL)
m_Clist.SetItemText(i,2,(char*)(_bstr_t)m_pRecordset->GetCollect("Cpno"));
else m_Clist.SetItemText(i,2,"");
m_Clist.SetItemText(i,3,(char*)(_bstr_t)m_pRecordset->GetCollect("Ccredit"));
m_pRecordset->MoveNext();
i++;
}
m_AdoConn.ExitConnect();
}
void CCourse::OnCSearch2()
{
// TODO: Add your control notification handler code here
cc.DoModal();
}
void CCourse::OnCDelete()
{
// TODO: Add your control notification handler code here
CListCtrl *s=(CListCtrl*)GetDlgItem(IDC_COURSE_LIST);
CComboBox *cpno=(CComboBox*)GetDlgItem(IDC_CPNO);
int i=0;
m_AdoConn.OnInitADOConn();
_bstr_t sql;
CString str,str1;
while(m_Clist.GetSelectedCount()!=0)
{
i=m_Clist.GetNextItem(-1,LVNI_SELECTED);
str=m_Clist.GetItemText(i,0);
m_Clist.DeleteItem(i);
int j=0;
/*cpno->GetLBText(j,str1);
while(str1!=str)
{
j++;
cpno->GetLBText(j,str1);
}*/
//cpno->DeleteString(j);
sql="DELETE FROM COURSE WHERE Cno="+str;
m_AdoConn.ExecuteSQL(sql);
}
m_AdoConn.ExitConnect();
}
void CCourse::OnCAll()
{
// TODO: Add your control notification handler code here
DisplayRecord();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -