📄 dba_company.cpp
字号:
// DBA_Company.cpp : implementation file
//
#include "stdafx.h"
#include "eq_manager_sys.h"
#include "DBA_Company.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDBA_Company dialog
CDBA_Company::CDBA_Company(CWnd* pParent /*=NULL*/)
: CDialog(CDBA_Company::IDD, pParent)
{
//{{AFX_DATA_INIT(CDBA_Company)
m_com_director = _T("");
m_com_id = _T("");
m_com_name = _T("");
//}}AFX_DATA_INIT
}
BOOL CDBA_Company::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
ConnectDB();
Combo_class();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDBA_Company::ConnectDB()//连接数据库函数
{
TRY
{
m_db.OpenEx("DSN=ORADB;UID=eq_system;PWD=eq_system",CDatabase::noOdbcDialog);
}
CATCH(CDBException,ex)
{
AfxMessageBox("问题出在连接数据库");
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 CDBA_Company::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDBA_Company)
DDX_Control(pDX, IDC_COMBO_Id, m_combo_id);
DDX_Control(pDX, IDC_COMBO_Name, m_combo_name);
DDX_Control(pDX, IDC_COMBO_Dirctor, m_combo_director);
DDX_CBString(pDX, IDC_COMBO_Dirctor, m_com_director);
DDX_CBString(pDX, IDC_COMBO_Id, m_com_id);
DDX_CBString(pDX, IDC_COMBO_Name, m_com_name);
//}}AFX_DATA_MAP
}
void CDBA_Company::Combo_class()
{
m_combo_id.ResetContent();
m_combo_name.ResetContent();
m_combo_director.ResetContent();
TRY
{
CRecordset rs(&m_db);
rs.Open(CRecordset::dynaset,"select * from dep_info");
while(!rs.IsEOF())
{
CString str_id;
CString str_name;
CString str_director;
rs.GetFieldValue((short)0,str_id);
rs.GetFieldValue((short)1,str_name);
rs.GetFieldValue((short)2,str_director);
m_combo_id.AddString(str_id);
m_combo_name.AddString(str_name);
m_combo_director.AddString(str_director);
rs.MoveNext();
}
rs.Close();
m_combo_id.SetCurSel(0);
m_combo_name.SetCurSel(0);
m_combo_director.SetCurSel(0);
UpdateData(FALSE);
}
CATCH(CDBException,ex)
{
AfxMessageBox("列表更新数据错误");
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
AfxMessageBox("xx");
pEx->ReportError();
AfxMessageBox("memory exception");
}
AND_CATCH(CException,e)
{
AfxMessageBox("xxx");
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH
}
BEGIN_MESSAGE_MAP(CDBA_Company, CDialog)
//{{AFX_MSG_MAP(CDBA_Company)
ON_BN_CLICKED(IDC_BUTTON_Insert, OnBUTTONInsert)
ON_BN_CLICKED(IDC_BUTTON_Modify, OnBUTTONModify)
ON_CBN_SELCHANGE(IDC_COMBO_Id, OnSelchangeCOMBOId)
ON_BN_CLICKED(IDC_BUTTON_Delete, OnBUTTONDelete)
ON_CBN_SELCHANGE(IDC_COMBO_Name, OnSelchangeCOMBOName)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDBA_Company message handlers
void CDBA_Company::OnBUTTONInsert()
{
// TODO: Add your control notification handler code here
m_combo_id.GetWindowText(m_com_id);
m_combo_name.GetWindowText(m_com_name);
m_combo_director.GetWindowText(m_com_director);
bool flag = FALSE;
/*
//部门编号,部门名称不能相同
if(m_com_director == "")
{
MessageBox("请输入部门经理信息!", "提示信息");
}
else
{
TRY
{
//CRecordset rs(&m_db);
CString sql;
sql.Format("Insert into dep_info values('%s', '%s', '%s', 0, 0.00)",
m_com_id, m_com_name, m_com_director);
TRACE(sql);
m_db.ExecuteSQL(sql);
flag = TRUE;
}
CATCH(CDBException,ex)
{
AfxMessageBox("问题出在插入");
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
if(flag == TRUE)
{
Combo_class();
MessageBox("插入成功!", "提示信息");
}
}*/
TRY
{
CString sql;
CString Name[50];
CString Id[50];
int count=0,i;
UpdateData(TRUE);
if(m_com_id!="")
{
if(m_com_name!="")
{
CRecordset rs(&m_db);
rs.Open(CRecordset::dynaset,"select * from dep_info");
while(!rs.IsEOF())
{
rs.GetFieldValue((short)0,Id[count]);
rs.GetFieldValue((short)1,Name[count]);
count++;
rs.MoveNext();
}
for(i=0;i<count;i++)
{
if(m_com_id==Id[i])
{
MessageBox("不能插入重复ID!");
return;
}
if(m_com_name==Name[i])
{
MessageBox("不能插入重复Name!");
return;
}
}
sql.Format("Insert into dep_info values('%s','%s','%s',0,0)",m_com_id,m_com_name, m_com_director);
TRACE(sql);
m_db.ExecuteSQL(sql);
MessageBox("插入成功!");
//dlg.ConnectDB();
}
else
MessageBox("部门名称不能为空!");
}
else
MessageBox("部门编号不能为空!");
}
CATCH(CDBException,ex)
{
AfxMessageBox("插入操作失败!");
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 CDBA_Company::OnBUTTONModify()
{
// TODO: Add your control notification handler code here
m_combo_id.GetWindowText(m_com_id);
m_combo_name.GetWindowText(m_com_name);
m_combo_director.GetWindowText(m_com_director);
bool flag = FALSE;
TRY
{
//CRecordset rs(&m_db);
CString sql;
sql.Format("Update dep_info set dep_name='%s', dep_manager='%s' where dep_id = '%s'",
m_com_name, m_com_director, m_com_id);
TRACE(sql);
m_db.ExecuteSQL(sql);
flag = TRUE;
}
CATCH(CDBException,ex)
{
AfxMessageBox("问题出在插入");
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
if(flag == TRUE)
{
Combo_class();
MessageBox("修改成功!", "提示信息");
}
}
void CDBA_Company::OnSelchangeCOMBOId()
{
// TODO: Add your control notification handler code here
//m_combo_name.ResetContent ();
//m_combo_director.ResetContent ();
CString S_Id;
CString sql;
CRecordset rs(&m_db);
m_combo_id.GetLBText(m_combo_id.GetCurSel(), S_Id);
sql.Format("Select * from dep_info where dep_id = '%s'", S_Id);
rs.Open(CRecordset::dynaset,sql);
m_com_id = S_Id;
while(!rs.IsEOF())
{
CString str_id;
CString str_name;
CString str_director;
rs.GetFieldValue((short)0,str_id);
rs.GetFieldValue((short)1,str_name);
rs.GetFieldValue((short)2,str_director);
if(str_id == m_com_id)
{
m_com_name = str_name;
m_com_director = str_director;
break;
}
else
{
rs.MoveNext();
}
//MessageBox("出现严重错误!", "提示信息");
}
rs.Close();
//m_combo_id.SetCurSel(0);
//m_combo_name.SetCurSel(0);
//m_combo_director.SetCurSel(0);
UpdateData(FALSE);
}
//触发下拉莱单的事件
void CDBA_Company::OnSelchangeCOMBOName()
{
// TODO: Add your control notification handler code here
//m_combo_name.ResetContent ();
//m_combo_director.ResetContent ();
CString S_Name;
CString sql;
CRecordset rs(&m_db);
m_combo_name.GetLBText(m_combo_name.GetCurSel(), S_Name);
sql.Format("Select * from dep_info where dep_name = '%s'", S_Name);
rs.Open(CRecordset::dynaset,sql);
m_com_name = S_Name;
while(!rs.IsEOF())
{
CString str_id;
CString str_name;
CString str_director;
rs.GetFieldValue((short)0,str_id);
rs.GetFieldValue((short)1,str_name);
rs.GetFieldValue((short)2,str_director);
if(str_name == m_com_name)
{
m_com_id = str_id;
m_com_director = str_director;
break;
}
else
{
rs.MoveNext();
}
}
rs.Close();
UpdateData(FALSE);
}
//删除3个表的元组
void CDBA_Company::OnBUTTONDelete()
{
// TODO: Add your control notification handler code here
if(::MessageBox(NULL,"是否删除信息?", "提示信息", MB_YESNO | MB_ICONQUESTION) == IDYES)
{
m_combo_id.GetWindowText(m_com_id);
m_combo_name.GetWindowText(m_com_name);
m_combo_director.GetWindowText(m_com_director);
bool flag = FALSE;
TRY
{
CString sql;
sql.Format("Delete from eq_info where dep_id = '%s'", m_com_id);
TRACE(sql);
m_db.ExecuteSQL(sql);
sql.Format("Delete from dep_info where dep_id = '%s'", m_com_id);
TRACE(sql);
m_db.ExecuteSQL(sql);
flag = TRUE;
}
CATCH(CDBException,ex)
{
AfxMessageBox("问题出在插入");
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
if(flag == TRUE)
{
Combo_class();
m_com_id = "";
m_com_name = "";
m_com_director = "";
UpdateData(FALSE);
MessageBox("删除成功!", "提示信息");
}
}
else
{
//未删除,自动返回
}
/*
if(m_com_id == "" && m_com_name == "" && m_com_director == "")
{
MessageBox("请输入删除信息!", "提示信息");
}
else
{
Delete dlg;
dlg.DoModal();
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -