實在沒多少分,所以就寫詳細了點,希望能幫解決一下真的謝謝了
我的程式是可以編譯的,這是.cpp檔案,
#include "stdafx.h"這是建立exe出錯的兩個函式,如果把list_all函式去掉就只能顯示類似這個
#include "宿舍管理系統.h"
#include "MainHostel.h"
#include "MainHostelSet1.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMainHostel dialog
CMainHostel::CMainHostel(CWnd* pParent /*=NULL*/)
: CDialog(CMainHostel::IDD, pParent)
{
//{{AFX_DATA_INIT(CMainHostel)
m_Dormitory_dno = _T("");
m_louno = _T("");
m_rnum = 0;
m_wrum = 0;
m_dphone = _T("");
//}}AFX_DATA_INIT
}
void CMainHostel::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMainHostel)
DDX_Control(pDX, IDC_LIST_HOSTEL, m_HostelList);
DDX_Text(pDX, IDC_EDIT1, m_Dormitory_dno);
DDX_Text(pDX, IDC_EDIT2, m_louno);
DDX_Text(pDX, IDC_EDIT3, m_rnum);
DDX_Text(pDX, IDC_EDIT4, m_wrum);
DDX_Text(pDX, IDC_EDIT5, m_dphone);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CMainHostel, CDialog)
//{{AFX_MSG_MAP(CMainHostel)
ON_BN_CLICKED(IDC_BUTTON_ADDHOSTEL, OnButtonAddhostel)
ON_BN_CLICKED(IDC_BUTTON_DELHOSTEL, OnButtonDelhostel)
ON_BN_CLICKED(IDC_BUTTON_EDITHOSTEL, OnButtonEdithostel)
ON_NOTIFY(NM_CLICK, IDC_LIST_HOSTEL, OnClickListHostel)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMainHostel message handlers
BOOL CMainHostel::OnInitDialog()
{
CDialog::OnInitDialog();
m_database.Open(_T("廖利兵"));
m_HostelList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP); // 整行選擇、網格線
m_HostelList.InsertColumn(0, _T("宿舍號"), LVCFMT_LEFT, 100); // 插入第2列的列名
m_HostelList.InsertColumn(1, _T("樓號"), LVCFMT_LEFT, 100); // 插入第3列的列名
m_HostelList.InsertColumn(2, _T("應住人數"), LVCFMT_LEFT, 100); // 插入第4列的列名
m_HostelList.InsertColumn(3, _T("實住人數"), LVCFMT_LEFT, 100); // 插入第5列的列名
m_HostelList.InsertColumn(4, _T("宿舍電話"), LVCFMT_LEFT, 100);
CString str;
str.Format("select * from Dormitory order by dno");
List_All(str);
return TRUE;
}
BOOL CMainHostel::List_All(CString strSQL)
{ CDialog::OnInitDialog();
m_HostelList.DeleteAllItems();
CMainHostelSet1 m_Dormitory;
try{
if (m_Dormitory.IsOpen())
m_Dormitory.Close();
if (!m_Dormitory.Open(CRecordset::snapshot, strSQL)){
MessageBox("打開資料庫失敗","連接資料庫",MB_OK);
return false;
}
}
catch (CDBException *e){
e->ReportError();
}
int nIndex = 0;
m_Dormitory.MoveFirst();
while (!m_Dormitory.IsEOF()){
LV_ITEM litem;
litem.mask = LVIF_TEXT;
litem.iItem = nIndex;
litem.iSubItem = 0;
m_HostelList.InsertItem(&litem);
m_HostelList.SetItemText(nIndex, 0, m_Dormitory.m_Dormitory_dno);
m_HostelList.SetItemText(nIndex, 1, m_Dormitory.m_louno);
CString wrum="";
CString rnum="";
wrum.Format(_T("%3d"),m_Dormitory.m_wrum);
rnum.Format(_T("%3d"),m_Dormitory.m_rnum);
m_HostelList.SetItemText(nIndex, 2, rnum);
m_HostelList.SetItemText(nIndex, 3, wrum);
m_HostelList.SetItemText(nIndex, 4, m_Dormitory.m_dphone);
m_Dormitory.MoveNext();
nIndex++;
}
m_Dormitory.Close();
return true;
}
,如果不去掉,
,點擊按鈕后,整個exe界面直接消失了,我感覺是資料庫鏈接的問題如果是按F5運行的話,會出現如下狀況
按確定后
資料庫連接代碼如下[code=text#include "stdafx.h"
#include "宿舍管理系統.h"
#include "MainHostelSet1.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMainHostelSet1
IMPLEMENT_DYNAMIC(CMainHostelSet1, CRecordset)
CMainHostelSet1::CMainHostelSet1(CDatabase* pdb)
: CRecordset(pdb)
{
//{{AFX_FIELD_INIT(CMainHostelSet1)
m_dphone = _T("");
m_louno = _T("");
m_rnum = 0;
m_wrum = 0;
m_Dormitory_dno = _T("");
m_nFields = 5;
//}}AFX_FIELD_INIT
m_nDefaultType = snapshot;
}
CString CMainHostelSet1::GetDefaultConnect()
{
return _T("ODBC;DSN=廖利兵");
}
CString CMainHostelSet1::GetDefaultSQL()
{
return _T("[dbo].[Dormitory]");
}
void CMainHostelSet1::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CMainHostelSet1)
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Text(pFX, _T("[dphone]"), m_dphone);
RFX_Text(pFX, _T("[louno]"), m_louno);
RFX_Long(pFX, _T("[rnum]"), m_rnum);
RFX_Long(pFX, _T("[wrum]"), m_wrum);
RFX_Text(pFX, _T("[dno]"), m_Dormitory_dno);
//}}AFX_FIELD_MAP
}
/////////////////////////////////////////////////////////////////////////////
// CMainHostelSet1 diagnostics
#ifdef _DEBUG
void CMainHostelSet1::AssertValid() const
{
CRecordset::AssertValid();
}
void CMainHostelSet1::Dump(CDumpContext& dc) const
{
CRecordset::Dump(dc);
}
#endif //_DEBUG
][/code] 如果可以,請大佬解決一下,郵箱[email protected] 或者評論回復,盡量不要說術語,就說一下怎么改,本人小白,謝謝啦,
uj5u.com熱心網友回復:
f5的時候,看一下出錯時的呼叫堆疊情況,就可以知道錯誤原因轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/13588.html
標籤:數據庫

