// UserInfoDlg.cpp : implementation file // #include "stdafx.h" #include "test.h" #include "UserInfoDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CUserInfoDlg dialog CUserInfoDlg::CUserInfoDlg(CWnd* pParent /*=NULL*/) : CDialog(CUserInfoDlg::IDD, pParent) { //{{AFX_DATA_INIT(CUserInfoDlg) //}}AFX_DATA_INIT } void CUserInfoDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CUserInfoDlg) DDX_Control(pDX, IDC_LIST1, m_list); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CUserInfoDlg, CDialog) //{{AFX_MSG_MAP(CUserInfoDlg) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CUserInfoDlg message handlers BOOL CUserInfoDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here //对列表控件进行初始化 m_list.InsertColumn(0,"书籍号码"); m_list.InsertColumn(1,"书籍名称"); m_list.InsertColumn(2,"书籍作者"); m_list.InsertColumn(3,"出版社"); m_list.InsertColumn(4,"借书日期"); m_list.InsertColumn(5,"还书日期"); //获取列表的宽度 RECT rect; m_list.GetWindowRect(&rect); int wid=rect.right-rect.left; //为你的每列分宽度 m_list.SetColumnWidth(0,wid/12+wid/24); m_list.SetColumnWidth(1,3*wid/12); m_list.SetColumnWidth(2,wid/12+wid/24); m_list.SetColumnWidth(3,2*wid/12); m_list.SetColumnWidth(4,2*wid/12); m_list.SetColumnWidth(5,2*wid/12); m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP); //初始化结束,进行数据的显示 extern CString name; // name="sa2"; CoInitialize(NULL); _ConnectionPtr pconnect(__uuidof(Connection)); _RecordsetPtr record(__uuidof(Recordset)); _CommandPtr comd(__uuidof(Command)); pconnect->ConnectionString="Provider=MSDASQL.1;Persist Security Info=False;User ID=Administrator;Data Source=student;Initial Catalog=Library"; pconnect->Open("","","",NULL); comd->put_ActiveConnection(_variant_t((IDispatch *)pconnect)); //利用登录时使用的姓名得到其ID //标准SQL语句 CString cmd="select * from READER where NAME='"; cmd+=name; cmd+="'"; comd->CommandText=_bstr_t(cmd); //得到SQL语句 record=comd->Execute(NULL,NULL,adCmdText); //进行数据库查询操作 if(record->end) { AfxMessageBox("数据库读者信息,数据库错误"); return false; } CString id=(char*)(_bstr_t)record->GetCollect("ID"); int m=0; while(id[m]!=' ') m++; id=id.Left(m); //查询读者所借册数 cmd="select count(*) from READBOOK where ID='"; cmd+=id; cmd+="'"; comd->CommandText=_bstr_t(cmd); //得到SQL语句 record=comd->Execute(NULL,NULL,adCmdText); //得到记录的总数目,在vCount.lVal中保存 variant_t vCount = record->GetCollect((_variant_t)((long)0)); //进行记录查询 cmd="select * from BOOK,READBOOK where BOOK.BID=READBOOK.BID AND ID='"; cmd+=id; cmd+="'"; comd->CommandText=_bstr_t(cmd); //得到SQL语句 record=comd->Execute(NULL,NULL,adCmdText); //得到记录的总数目,在vCount.lVal中保存 //更新列表控件 for(int i=0;iGetCollect("BID")); //插入行 m_list.SetItemText(0,1,(char*)(_bstr_t)record->GetCollect("BNAME")); //名称 m_list.SetItemText(0,2,(char*)(_bstr_t)record->GetCollect("BWRITER")); //作者 m_list.SetItemText(0,3,(char*)(_bstr_t)record->GetCollect("BPRESS")); //出版社 m_list.SetItemText(0,4,(char*)(_bstr_t)record->GetCollect("STARTTIME")); //借书日期 m_list.SetItemText(0,5,(char*)(_bstr_t)record->GetCollect("ENDTIME")); //还书日期 record->MoveNext(); } pconnect->Close(); comd.Release(); record.Release(); pconnect.Release(); CoUninitialize(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }