📄 setdlg.cpp
字号:
sql.Format("select *from tab_Depart where DepartName='%s'",departName);
CRecordset rs2(&m_db);
rs2.Open(CRecordset::dynaset,sql);
if(!rs2.IsEOF())
{
CDBVariant var;
rs2.GetFieldValue((short)0,var,SQL_C_SLONG);
if(var.m_dwType!=DBVT_NULL)
departId=var.m_lVal;
var.Clear();
}
sql.Format("Insert into tab_Class(ClassID,ClassName,DepartID) values(%d,'%s',%d)",
atoi(id1),name,departId);
TRACE(sql);
m_db.ExecuteSQL(sql);
InsertClassItem(id1,name,departName);
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH
}
void CSetDlg::OpenClassData()
{
if(!m_db.IsOpen()){
MessageBox("数据库没有打开!");
return;
}
TRY{
CRecordset rs(&m_db);
CString sql;
sql.Format("select *from tab_Depart order by DepartID");
rs.Open(CRecordset::dynaset,sql);
while(!rs.IsEOF()){ //显示系别控件
int id;
CString temp,name;
CDBVariant var;
rs.GetFieldValue((short)0,var,SQL_C_SLONG);
if(var.m_dwType!=DBVT_NULL)
id=var.m_lVal;
var.Clear();
temp.Format("%d",id);
rs.GetFieldValue(1,name);
m_cDepart.AddString(name);
rs.MoveNext();
}
rs.Close();
sql.Format("select *from tab_Class order by ClassID");
rs.Open(CRecordset::dynaset,sql);
while(!rs.IsEOF()){ //显示班级列表框控件数据
int id,departId;
CString temp1,name,temp2;
CDBVariant var;
//获得班级编号
rs.GetFieldValue((short)0,var,SQL_C_SLONG);
if(var.m_dwType!=DBVT_NULL)
id=var.m_lVal;
var.Clear();
temp1.Format("%d",id);
//获得班级名称
rs.GetFieldValue(1,name);
//获得系别编号 转换为了系名显示
rs.GetFieldValue((short)2,var,SQL_C_SLONG);
if(var.m_dwType!=DBVT_NULL)
departId=var.m_lVal;
var.Clear();
CRecordset rs2(&m_db);
sql.Format("select *from tab_Depart where DepartID=%d",departId);
rs2.Open(CRecordset::dynaset,sql);
if(!rs2.IsEOF())
rs2.GetFieldValue(1,temp2);
InsertClassItem(temp1,name,temp2);
rs.MoveNext();
}
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH
}
void CSetDlg::InsertDb(CString table,CString id, CString name)
{
CString sql;
CRecordset rs(&m_db);
TRY{
switch(m_iSetType)
{
case 1:
sql.Format("select *from %s where DepartID=%s",table,id);
rs.Open(CRecordset::dynaset,sql);
if(!rs.IsEOF())
{
MessageBox("该编号已经存在!");
m_strID.Empty();
UpdateData(FALSE);
return;
}
rs.Close();
sql.Format("select *from %s where DepartName='%s'",table,name);
rs.Open(CRecordset::dynaset,sql);
if(!rs.IsEOF())
{
MessageBox("该名称已经存在!");
m_strName.Empty();
UpdateData(FALSE);
return;
}
sql.Format("Insert into tab_Depart(DepartID,DepartName) values(%d,'%s')",
atoi(id),name);
break;
case 2:
/* sql.Format("select *from %s where ClassID=%s",table,id);
rs.Open(CRecordset::dynaset,sql);
if(!rs.IsEOF())
{
MessageBox("该编号已经存在!");
m_strID.Empty();
UpdateData(FALSE);
return;
}
char cDepart[20];
int istrlen,iDepartID;
istrlen=m_cDepart.GetLBText(m_cDepart.GetCurSel(),cDepart);
if(istrlen!=0)
{
sql.Format("Select DepartID from tab_Depart where DepartName='%s'",_T(cDepart));
CRecordset rs2;
rs2.Open(CRecordset::dynaset,sql);
if(!rs2.IsEOF())
{
iDepartID;
CDBVariant var;
rs2.GetFieldValue((short)0,var,SQL_C_SLONG);
if(var.m_dwType!=DBVT_NULL)
iDepartID=var.m_iVal;
var.Clear();
}
}
sql.Format("Insert into tab_Class(ClassID,ClassName,DepartID) values(%d,'%s',%d)",
atoi(id),name,iDepartID);
break;*/
case 3:
sql.Format("select *from %s where CourseID=%s",table,id);
rs.Open(CRecordset::dynaset,sql);
if(!rs.IsEOF())
{
MessageBox("该编号已经存在!");
m_strID.Empty();
UpdateData(FALSE);
return;
}
sql.Format("Insert into tab_Course(CourseID,CourseName) values(%d,'%s')",
atoi(id),name);
break;
case 4:
sql.Format("select *from %s where ClassroomID=%s",table,id);
rs.Open(CRecordset::dynaset,sql);
if(!rs.IsEOF())
{
MessageBox("该编号已经存在!");
m_strID.Empty();
UpdateData(FALSE);
return;
}
sql.Format("Insert into tab_Classroom(ClassroomID,ClassroomName) values(%d,'%s')",
atoi(id),name);
break;
}
TRACE(sql);
m_db.ExecuteSQL(sql);
InsertItemData(id,name); //显示数据
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH
}
void CSetDlg::InsertItemData(CString id, CString name)
{
int nIndex=m_listShSet.GetItemCount();
LV_ITEM lvItem;
lvItem.mask=LVIF_TEXT;
lvItem.iItem=nIndex;
lvItem.iSubItem=0;
/* CString temp;
temp.Format("%d",id);*/
lvItem.pszText=(char*)(LPCTSTR)id;
m_listShSet.InsertItem(&lvItem);
m_listShSet.SetItemText(nIndex,1,name);
}
void CSetDlg::Open_data(CString tabName, CString strID)
{
if(!m_db.IsOpen()){
MessageBox("数据库没有打开!");
return;
}
TRY{
CRecordset rs(&m_db);
CString sql;
sql.Format("select *from %s order by %s",tabName,strID);
rs.Open(CRecordset::dynaset,sql);
while(!rs.IsEOF()){
int id;
CString temp,name;
CDBVariant var;
rs.GetFieldValue((short)0,var,SQL_C_SLONG);
if(var.m_dwType!=DBVT_NULL)
id=var.m_iVal;
var.Clear();
temp.Format("%d",id);
rs.GetFieldValue(1,name);
InsertItemData(temp,name);
rs.MoveNext();
}
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH
}
BOOL CSetDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
DWORD dwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|
LVS_EX_ONECLICKACTIVATE|LVS_EX_UNDERLINEHOT;
m_listShSet.SetExtendedStyle(dwExStyle);
switch(m_iSetType)
{
case 1:
SetWindowText("系别更新");
GetDlgItem(IDC_COMBO_DEPART)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_DEPART)->ShowWindow(SW_HIDE);
m_listShSet.InsertColumn(0,"系编号",LVCFMT_CENTER,100);
m_listShSet.InsertColumn(1,"系名称",LVCFMT_CENTER,160);
//显示数据
Open_data("tab_Depart","DepartID");
break;
case 2:
SetWindowText("班级更新");
m_listShSet.InsertColumn(0,"班级编号",LVCFMT_CENTER,80);
m_listShSet.InsertColumn(1,"班级名称",LVCFMT_CENTER,100);
m_listShSet.InsertColumn(2,"系名",LVCFMT_CENTER,120);
//--显示数据
OpenClassData();
break;
case 3:
SetWindowText("课程更新");
GetDlgItem(IDC_COMBO_DEPART)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_DEPART)->ShowWindow(SW_HIDE);
m_listShSet.InsertColumn(0,"课程编号",LVCFMT_CENTER,100);
m_listShSet.InsertColumn(1,"课程名称",LVCFMT_CENTER,160);
Open_data("tab_Course","CourseID");
break;
case 4:
SetWindowText("课室更新");
GetDlgItem(IDC_COMBO_DEPART)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_DEPART)->ShowWindow(SW_HIDE);
m_listShSet.InsertColumn(0,"课室编号",LVCFMT_CENTER,100);
m_listShSet.InsertColumn(1,"课室名称",LVCFMT_CENTER,160);
Open_data("tab_Classroom","ClassroomID");
break;
}
GetDlgItem(IDC_BTN_ADD)->EnableWindow(TRUE);
GetDlgItem(IDC_BTN_MOD)->EnableWindow(FALSE);
GetDlgItem(IDC_BTN_DEL)->EnableWindow(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -