📄 testdlg.cpp
字号:
// TestDlg.cpp : implementation file
//
#include "stdafx.h"
#include "gaga.h"
#include "TestDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTestDlg dialog
extern CDatabase m_db;
CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTestDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CTestDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CTestDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTestDlg)
DDX_Control(pDX, IDC_LIST1, m_yonghushebei);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
//{{AFX_MSG_MAP(CTestDlg)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTestDlg message handlers
void CTestDlg::InitList()
{
DWORD dwExStyle = LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES |
LVS_EX_HEADERDRAGDROP | LVS_EX_ONECLICKACTIVATE | LVS_EX_UNDERLINEHOT;
m_yonghushebei.SetExtendedStyle(dwExStyle);
//初始用户信息列表框控件
m_yonghushebei.InsertColumn(0,"用ID",LVCFMT_CENTER,60);
m_yonghushebei.InsertColumn(1,"用户名称",LVCFMT_CENTER,60);
m_yonghushebei.InsertColumn(2,"成绩",LVCFMT_CENTER,60);
}
// EXCEPTION: OCX Property Pages should return FALSE
void CTestDlg::InsertCRInfoItem(int id, CString name, CString score)
{
int nIndex = m_yonghushebei.GetItemCount();
LV_ITEM lvItem;
lvItem.mask = LVIF_TEXT ;
lvItem.iItem = nIndex; //行数
lvItem.iSubItem = 0;
CString temp ;
temp.Format("%d",id);
lvItem.pszText = (char*)(LPCTSTR)temp; //第一列
//在最后一行插入记录值.
m_yonghushebei.InsertItem(&lvItem);
//设置该行的其他列的值.
m_yonghushebei.SetItemText(nIndex,1,name);
m_yonghushebei.SetItemText(nIndex,2,score);
}
void CTestDlg::InitCtrlData()
{
if(!m_db.IsOpen())
{
MessageBox("数据库未打开");
return;
}
TRY{
CRecordset rs(&m_db);
//打开所有的用户信息记录
rs.Open(CRecordset::dynaset, "select * from student");
while (!rs.IsEOF())
{
int id;
CString name,score;
CDBVariant var;
//获取客户信息ID字段值
rs.GetFieldValue((short)0, var, SQL_C_SLONG);
if (var.m_dwType != DBVT_NULL)
id = var.m_iVal;
var.Clear();
//获取姓名字段值
rs.GetFieldValue(1, name);
//获取密码信息字段值
rs.GetFieldValue(2, score);
InsertCRInfoItem(id,name,score);
rs.MoveNext();
}//while ending
rs.Close();
}
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 //trydeng
}
BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
InitList();
InitCtrlData();
return TRUE; // return TRUE unless you set the focus to a control
}
void CTestDlg::OnButton1()
{
// TODO: Add your control notification handler code here
int nItem = m_yonghushebei.GetNextItem(-1, LVNI_SELECTED);
//如果没有选择要删除的纪录,返回.
if(nItem == -1){
AfxMessageBox("没有选择要删除的客户信息");
return;
}
//从列表框控件中获取选择的客户信息.
int id = atoi(m_yonghushebei.GetItemText(nItem,0));
TRY{
CString deletedSql;
//删除客户信息
deletedSql.Format("delete from student where id = %d",id);
m_db.ExecuteSQL(deletedSql);
//删除界面上的数据
m_yonghushebei.DeleteItem(nItem);
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
m_db.Rollback();
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
m_db.Rollback();
}
END_CATCH
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -