📄 database_show.cpp
字号:
// database_show.cpp : implementation file
//
#include "stdafx.h"
#include "file_handle.h"
#include "database_show.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// database_show dialog
database_show::database_show(CWnd* pParent /*=NULL*/)
: CDialog(database_show::IDD, pParent)
{
//{{AFX_DATA_INIT(database_show)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void database_show::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(database_show)
DDX_Control(pDX, IDC_LIST1, m_database_list);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(database_show, CDialog)
//{{AFX_MSG_MAP(database_show)
ON_BN_CLICKED(IDC_BUTTON1, OnDelete)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// database_show message handlers
BOOL database_show::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
DWORD dwStyle = m_database_list.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格的listctrl)
dwStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl)
dwStyle |= LVS_EX_CHECKBOXES;//item前生成checkbox控件
m_database_list.SetExtendedStyle(dwStyle); //设置扩展风格
m_database_list.InsertColumn(0, "NO", LVCFMT_LEFT, 45 );//插入列
m_database_list.InsertColumn(1, "SourceIP", LVCFMT_LEFT, 140 );
m_database_list.InsertColumn(2, "DestiIP", LVCFMT_LEFT, 140 );
m_database_list.InsertColumn(3, "SourcePort", LVCFMT_LEFT, 90);
m_database_list.InsertColumn(4, "DestiPort", LVCFMT_LEFT, 80);
m_database_list.InsertColumn(5, "Protocol", LVCFMT_LEFT, 70 );
m_database_list.InsertColumn(6, "length", LVCFMT_LEFT, 60 );
m_database_list.InsertColumn(7, "Time", LVCFMT_LEFT, 153);
DBConnect();
RefreshData();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void database_show ::DBConnect()
{
CString strConnect;
strConnect.Format("DSN=%s;UID=%s;PWD=%s","myData","NULL","NULL");
try
{
m_db.OpenEx(strConnect,CDatabase::noOdbcDialog);
}
catch(CDBException ex)
{
AfxMessageBox(ex.m_strError);
AfxMessageBox(ex.m_strStateNativeOrigin);
}
catch(CMemoryException pEx)
{
pEx.ReportError();
AfxMessageBox("memory exception");
}
catch(CException e)
{
char szError[100];
e.GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
}
void database_show::RefreshData()
{
if(!m_db.IsOpen())
m_db.OpenEx("DSN=myData;UID=NULL;PWD=NULL");
m_database_list.DeleteAllItems();
CRecordset rs(&m_db);
rs.Open(CRecordset::dynaset,"select * from packet_fact");
int i=0;
char buf[30];
CDBVariant varValue;
if(rs.GetRecordCount()!=0)
rs.MoveFirst();
while(!rs.IsEOF())
{
int temp =0 ;
rs.GetFieldValue(temp,varValue);
sprintf(buf,"%d",varValue.m_iVal);
m_database_list.InsertItem(i,buf);
rs.GetFieldValue(1,varValue);
m_database_list.SetItemText(i,1,varValue.m_pstring->GetBuffer(1));
rs.GetFieldValue(2,varValue);
m_database_list.SetItemText(i,2,varValue.m_pstring->GetBuffer(1));
rs.GetFieldValue(3,varValue);
sprintf(buf,"%d",varValue.m_iVal);
m_database_list.SetItemText(i,3,buf);
rs.GetFieldValue(4,varValue);
sprintf(buf,"%d",varValue.m_iVal);
m_database_list.SetItemText(i,4,buf);
rs.GetFieldValue(5,varValue);
m_database_list.SetItemText(i,5,varValue.m_pstring->GetBuffer(1));
rs.GetFieldValue(6,varValue);
sprintf(buf,"%d",varValue.m_iVal);
m_database_list.SetItemText(i,6,buf);
i++;
rs.MoveNext();
}
}
void database_show::OnDelete()
{
// TODO: Add your control notification handler code here
if(!m_db.IsOpen())
m_db.OpenEx("DSN=myData;UID=NULL;PWD=NULL");
CRecordset rs(&m_db);
rs.Open(CRecordset::dynaset,"select * from packet_fact");
//CString str;
int num[1024];
int k = 0;
CString strSQL;
for(int i=0; i<m_database_list.GetItemCount(); i++)
{
if( m_database_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED || m_database_list.GetCheck(i))
{
//str.Format("第%d行的checkbox为选中状态", i);
num[k++] = atoi(m_database_list.GetItemText(i,0));
//AfxMessageBox(str);
}
}
for(int j = 0 ; j<k;j++)
{
strSQL.Format("delete from packet_fact where packet_id = %d",num[j]);
m_db.ExecuteSQL(strSQL);
}
m_db.Close();
RefreshData();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -