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

📄 kcadddlg.cpp

📁 数据库管理系统
💻 CPP
字号:
// KCAddDlg.cpp : implementation file
//

#include "stdafx.h"
#include "SCMIS.h"
#include "KCAddDlg.h"
#include"CcourseSet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CDatabase db;
/////////////////////////////////////////////////////////////////////////////
// CKCAddDlg dialog


CKCAddDlg::CKCAddDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CKCAddDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CKCAddDlg)
	m_id = _T("");
	m_name = _T("");
	m_where = _T("");
	m_intro = _T("");
	m_xuefen = 0;
	m_xueshi = 0;
	m_time = _T("");
	m_teacher = _T("");
	//}}AFX_DATA_INIT
}


void CKCAddDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CKCAddDlg)
	DDX_Control(pDX, IDC_LIST1, m_kc);
	DDX_Text(pDX, IDC_EDIT2, m_id);
	DDX_Text(pDX, IDC_EDIT3, m_name);
	DDX_Text(pDX, IDC_EDIT8, m_where);
	DDX_Text(pDX, IDC_EDIT9, m_intro);
	DDX_Text(pDX, IDC_EDIT5, m_xuefen);
	DDX_Text(pDX, IDC_EDIT6, m_xueshi);
	DDX_Text(pDX, IDC_EDIT7, m_time);
	DDX_CBString(pDX, IDC_COMBO1, m_teacher);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CKCAddDlg, CDialog)
	//{{AFX_MSG_MAP(CKCAddDlg)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CKCAddDlg message handlers


BOOL CKCAddDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CRecordset rs(&db);
	CString strSQL1;
	CDBVariant varValue1;
	char buf1[20];
	strSQL1.Format("select name from teacher ");
	rs.Open(CRecordset::forwardOnly,strSQL1);
	while ( !rs.IsEOF( ) )
	{   int temp=0;
		rs.GetFieldValue(temp,varValue1);
		sprintf(buf1,"%s",varValue1.m_pstring->GetBuffer(1));
		CComboBox *p=(CComboBox*)(GetDlgItem(IDC_COMBO1));
		p->AddString(buf1);
		rs.MoveNext( );
	}


	m_kc.InsertColumn(0,"课程号");
	m_kc.InsertColumn(1,"课程名");
	m_kc.InsertColumn(2,"教师");
	m_kc.InsertColumn(3,"学分");
	m_kc.InsertColumn(4,"学时");
	m_kc.InsertColumn(5,"上课时间");
	m_kc.InsertColumn(6,"上课地点");
	m_kc.InsertColumn(7,"简介");

	RECT rect;
	m_kc.GetWindowRect(&rect);
	int wid=rect.right-rect.left;
	m_kc.SetColumnWidth(0,wid/8);
	m_kc.SetColumnWidth(1,wid/8);
	m_kc.SetColumnWidth(2,wid/8);
	m_kc.SetColumnWidth(3,wid/8);
	m_kc.SetColumnWidth(4,wid/8);
	m_kc.SetColumnWidth(5,wid/8);
	m_kc.SetColumnWidth(6,wid/8);
	m_kc.SetColumnWidth(7,wid/8);
	m_kc.SetExtendedStyle(LVS_EX_FULLROWSELECT);
	m_kc.SetTextBkColor(RGB(192,192,123));
	m_kc.SetTextColor(RGB(0,0,255));

/*
	CRecordset  rs1(&db);
	strSQL.Format("select * from course");
	rs1.Open(CRecordset::forwardOnly,strSQL);
	int i=0;
    m_kc.DeleteAllItems();
	while(!rs1.IsEOF())
	{
		int temp=0;
		rs1.GetFieldValue(temp,varValue);
		//sprintf(buf,"%d",varValue.m_lVal); m_course.InsertItem(i,buf);//if is int type ,write this way
        sprintf(buf,"%s",varValue.m_pstring->GetBuffer(1)); m_kc.InsertItem(i,buf);
		//m_course.SetItemText(i,0,varValue.m_pstring->GetBuffer(1));
		rs1.GetFieldValue(1,varValue);
		m_kc.SetItemText(i,1,varValue.m_pstring->GetBuffer(1));
		rs1.GetFieldValue(2,varValue);
		m_kc.SetItemText(i,2,varValue.m_pstring->GetBuffer(1));
//表中是数字的显示方法
        rs1.GetFieldValue(3,varValue);
        sprintf(buf,"%d",varValue.m_iVal);
		m_kc.SetItemText(i,3,buf);
		rs1.GetFieldValue(4,varValue);
		sprintf(buf,"%d",varValue.m_iVal);
		m_kc.SetItemText(i,4,buf);
//
		rs1.GetFieldValue(5,varValue);
		m_kc.SetItemText(i,5,varValue.m_pstring->GetBuffer(1));
		rs1.GetFieldValue(6,varValue);
		m_kc.SetItemText(i,6,varValue.m_pstring->GetBuffer(1));
		rs1.GetFieldValue(7,varValue);
		m_kc.SetItemText(i,7,varValue.m_pstring->GetBuffer(1));

		rs1.MoveNext();
		i++;
	}
	rs1.Close();
	*/
	this->RefreshData();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}



void CKCAddDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int i=m_kc.GetSelectionMark();

	this->m_id=m_kc.GetItemText(i,0);
	this->m_name=m_kc.GetItemText(i,1);
	this->m_teacher=m_kc.GetItemText(i,2);
	this->m_xuefen=atoi(m_kc.GetItemText(i,3));
	this->m_xueshi=atoi(m_kc.GetItemText(i,4));
	this->m_time=m_kc.GetItemText(i,5);
	this->m_where=m_kc.GetItemText(i,6);
	this->m_intro=m_kc.GetItemText(i,7);	
	this->UpdateData(FALSE);
	*pResult = 0;
}

void CKCAddDlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
    this->UpdateData(TRUE);
	CString strSQL;

   
	strSQL.Format("insert into course values('%s','%s','%s',%d,%d,'%s','%s','%s')",this->m_id,this->m_name,m_teacher,this->m_xuefen,this->m_xueshi,this->m_time,this->m_where,this->m_intro);
	db.ExecuteSQL(strSQL);
	this->RefreshData();
	MessageBox("添加成功!");
	
	
}

void CKCAddDlg::OnButton2() 
{
	// TODO: Add your control notification handler code here
   
    int i=m_kc.GetSelectionMark();
	CString ct=m_kc.GetItemText(i,0);
	CString strSQL;
	strSQL.Format("delete * from course where id='%s'",ct);
	db.ExecuteSQL(strSQL);
	AfxMessageBox("delete successful");
	this->m_id="";
	this->m_name="";
	this->m_teacher="";
	this->m_time="";
	this->m_where="";
	this->m_intro="";
	this->m_xuefen=0;
	this->m_xueshi=0;
	this->UpdateData(FALSE);
    this->RefreshData();
}
void CKCAddDlg::OnButton3() 
{
	// TODO: Add your control notification handler code here
    this->m_id="";
	this->m_name="";
	this->m_teacher="";
	this->m_time="";
	this->m_where="";
	this->m_intro="";
	this->m_xuefen=0;
	this->m_xueshi=0;
	this->UpdateData(FALSE);
	MessageBox("请在上面输入数据");
	
}

void CKCAddDlg::RefreshData()
{   
	
	
	CString strSQL;
	CDBVariant varValue;
	char buf[20];
    CRecordset  rs1(&db);
	strSQL.Format("select * from course");
	rs1.Open(CRecordset::forwardOnly,strSQL);
	int i=0;
    m_kc.DeleteAllItems();
	while(!rs1.IsEOF())
	{
		int temp=0;
		rs1.GetFieldValue(temp,varValue);
		//sprintf(buf,"%d",varValue.m_lVal); m_course.InsertItem(i,buf);//if is int type ,write this way
        sprintf(buf,"%s",varValue.m_pstring->GetBuffer(1)); m_kc.InsertItem(i,buf);
		//m_course.SetItemText(i,0,varValue.m_pstring->GetBuffer(1));
		rs1.GetFieldValue(1,varValue);
		m_kc.SetItemText(i,1,varValue.m_pstring->GetBuffer(1));
		rs1.GetFieldValue(2,varValue);
		m_kc.SetItemText(i,2,varValue.m_pstring->GetBuffer(1));
//表中是数字的显示方法
        rs1.GetFieldValue(3,varValue);
        sprintf(buf,"%d",varValue.m_iVal);
		m_kc.SetItemText(i,3,buf);
		rs1.GetFieldValue(4,varValue);
		sprintf(buf,"%d",varValue.m_iVal);
		m_kc.SetItemText(i,4,buf);
//
		rs1.GetFieldValue(5,varValue);
		m_kc.SetItemText(i,5,varValue.m_pstring->GetBuffer(1));
		rs1.GetFieldValue(6,varValue);
		m_kc.SetItemText(i,6,varValue.m_pstring->GetBuffer(1));
		rs1.GetFieldValue(7,varValue);
		m_kc.SetItemText(i,7,varValue.m_pstring->GetBuffer(1));

		rs1.MoveNext();
		i++;
	}
	rs1.Close();
	

}

⌨️ 快捷键说明

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