⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_dialog_lg.cpp

📁 vc6连接mysql 显示数据库登陆框
💻 CPP
字号:
// TEST_DIALOG_LG.cpp : implementation file
//

#include "stdafx.h"
#include "TESTGLD.h"
#include "TEST_DIALOG_LG.h"
#include "mysqlOP.h"
#include "afxtempl.h"
#include"TESTGLDDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTEST_DIALOG_LG dialog


CTEST_DIALOG_LG::CTEST_DIALOG_LG(CWnd* pParent /*=NULL*/)
	: CDialog(CTEST_DIALOG_LG::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTESTDIALOGLG)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CTEST_DIALOG_LG::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTEST_DIALOG_LG)
	DDX_Control(pDX, IDC_LIST, m_list);
	DDX_Control(pDX, IDC_EDIT_PWD, m_pwd);
	DDX_Control(pDX, IDC_COMBO_USER, m_cboUser);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTEST_DIALOG_LG, CDialog)
	//{{AFX_MSG_MAP(CTEST_DIALOG_LG)
	ON_BN_CLICKED(IDC_BUTTON_OK, OnButtonOk)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTEST_DIALOG_LG message handlers
typedef CArray<CStringArray*,CStringArray*> usernm_Array;
usernm_Array username_array;

BOOL CTEST_DIALOG_LG::OnInitDialog()
{

   CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	//获取数据库中操作员信息:

	BOOL blresult;
	int iresult;
	_RecordsetPtr pRs;
	_variant_t vat;
	bstr_t strSelect,strTable,strWhere,strOrder,strGroup,strOther;    

	mysqlOP* clmysql=new mysqlOP;
	blresult=clmysql->mysqlConnect();

	if (blresult)
		{
		     strSelect="*";
			strTable="user";
			strWhere="";
			strOrder="login";
			strGroup="";
			strOther="";
			pRs.CreateInstance (__uuidof(Recordset));
//	===============================================================
           DWORD dwSytle=::GetWindowLong(m_list.m_hWnd ,GWL_STYLE);

       // 设置为报表形式

       SetWindowLong(m_list.m_hWnd,GWL_STYLE,dwSytle|LVS_REPORT);

       DWORD ExStyle=m_list.GetExtendedStyle();
       // 设置为报表形式

     //  m_list.SetExtendedStyle(ExStyle|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
    m_list.SetExtendedStyle(LVS_EX_FLATSB 
	                        |LVS_EX_FULLROWSELECT 
							|LVS_EX_FULLROWSELECT
							|LVS_EX_TWOCLICKACTIVATE  
							|LVS_EX_GRIDLINES );
    // 初始化列表控件

       m_list.InsertColumn(0,"编号",LVCFMT_CENTER,80,0);

       m_list.InsertColumn(1,"用户名",LVCFMT_CENTER,80,0);

       m_list.InsertColumn(2,"密码",LVCFMT_CENTER,80,0);

       //m_list.InsertColumn(3,"用户类型",LVCFMT_CENTER,80,0);

       // 初始化列表控件

      
    AddtoGrid();

//	=======================================================  
 /*//	=========================================================================
			RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
   m_list.SetExtendedStyle(LVS_EX_FLATSB 
	                        |LVS_EX_FULLROWSELECT 
							|LVS_EX_FULLROWSELECT
							|LVS_EX_TWOCLICKACTIVATE  
							|LVS_EX_GRIDLINES );
   m_list.InsertColumn(0,"会员编号",LVCFMT_LEFT,70,0);
   m_list.InsertColumn(1,"会员昵称",LVCFMT_LEFT,70,1);
   m_list.InsertColumn(2,"会员性别",LVCFMT_LEFT,70,2);

      int iPos=m_list.InsertItem(0,"1");

       m_list.SetItemText(iPos,1,"安美洪");

       m_list.SetItemText(iPos,2,"84768849");




//===========================================================================*/
			iresult=clmysql->mysqlSelect(pRs,strTable,strSelect,strWhere,strOrder,strGroup,strOther);
            if (-1==iresult||-2==iresult)
				MessageBox("未找到任何操作员信息或数据库查询时发生异常!");
			else
				{
				   //m_cboUser.AddString ();		  
				   int i=0;
				   pRs->MoveFirst ();
				   while(!pRs->adoEOF )
					   {
					      CStringArray *subString = new CStringArray;                          

					      vat=pRs->GetCollect ("login");
						  m_cboUser.AddString ((LPCTSTR)(_bstr_t)vat);
						  subString->Add ((LPCTSTR)(_bstr_t)vat);					      
                          
						  vat=pRs->GetCollect ("pw");
                          subString->Add ((LPCTSTR)(_bstr_t)vat);

						  vat=pRs->GetCollect ("type");
                          subString->Add ((LPCTSTR)(_bstr_t)vat);

						  username_array.Add(subString);

						  pRs->MoveNext ();	
						  i+=1;
					   }
				   pRs->Close ();
				   m_cboUser.SetCurSel (0);
				   
				}
		}
	else
		MessageBox("数据库连接失败!"); 
    
	return TRUE;  // return TRUE unless you set the focus to a control
}

void CTEST_DIALOG_LG::OnButtonOk() 
{
	
	CString pstrUser,pstrPwd;
	int maxSz=username_array.GetSize();
	((CComboBox*)GetDlgItem(IDC_COMBO_USER))->GetWindowText(pstrUser);
	GetDlgItemText(IDC_EDIT_PWD,pstrPwd);

	for(int i=0;i<maxSz;i++)
		{ 	
		   if(((CStringArray *)(username_array.GetAt(i)))->GetAt(0)==pstrUser)
			   {
				   if(strcmp(((CStringArray *)(username_array.GetAt(i)))->GetAt(1),pstrPwd)==0)
					   {
					       //设置用户权限:
					       if (0==strcmp(((CStringArray *)(username_array.GetAt(i)))->GetAt(2),"user"))
							   {
							   }
						   else
							   {
							   }
					       //释放用户名占用的内存空间:
						   this->EndDialog (0);
					   }
				   else
					   {
						   MessageBox("密码错误,请重新输入!");						   
						   m_pwd.SetFocus (); break;
					   }

			
		   }


		   CTESTGLDDlg dlg;
		   dlg.DoModal();
		}
    
    
}

void CTEST_DIALOG_LG::AddtoGrid()
{ 
  	BOOL blresult;
	int iresult;
	_RecordsetPtr pRs;
	mysqlOP* clmysql=new mysqlOP;

    blresult=clmysql->mysqlConnect();
	bstr_t strSelect,strTable,strWhere,strOrder,strGroup,strOther;
    if (blresult)
	{

		strSelect="*";
        strTable="user";
		strWhere="";
        strOrder="";
        strGroup="";
		strOther="";
		pRs.CreateInstance (__uuidof(Recordset));
        iresult=clmysql->mysqlSelect(pRs,strTable,strSelect,strWhere,strOrder,strGroup,strOther);
        switch (iresult)
			{
			 case -1:
			     MessageBox("未找到操作员记录!");
			 case -2:
                 MessageBox("数据库查询时发生异常!");
		     case 0:
				{
				   //显示操作员记录:
				   m_list.DeleteAllItems();
				   int nIndex = m_list.GetItemCount(); 				   
				   pRs->MoveFirst ();
				   LV_ITEM lvitemAdd= {1}; 
				   LV_ITEM lvitem = {0};
                   while(!pRs->adoEOF)				  
				   {					   
					   lvitemAdd.mask = LVIF_TEXT;
					   lvitemAdd.iItem = nIndex ;
					   lvitemAdd.iSubItem = 0;                       
					  
					   lvitemAdd.pszText =_com_util::ConvertBSTRToString((_bstr_t)pRs->GetCollect ("ID"));    //列0
					   

					   if (m_list.InsertItem(&lvitemAdd) != -1)
					   { 						
						lvitem.mask = LVIF_TEXT;
						lvitem.iItem = nIndex ;
						lvitem.iSubItem = 1;
						
						lvitem.pszText =_com_util::ConvertBSTRToString((bstr_t)pRs->GetCollect ("login"));      //列1       
						m_list.SetItem(&lvitem);

						
						lvitem.mask = LVIF_TEXT;
						lvitem.iItem = nIndex;
						lvitem.iSubItem = 2;
						
						lvitem.pszText =_com_util::ConvertBSTRToString((bstr_t)pRs->GetCollect ("pw"));      //列2
						m_list.SetItem(&lvitem);
                        

				     	lvitem.mask = LVIF_TEXT;
						lvitem.iItem = nIndex;
						lvitem.iSubItem = 3;
						
						lvitem.pszText =_com_util::ConvertBSTRToString((bstr_t)pRs->GetCollect ("type"));      //列2
						m_list.SetItem(&lvitem);
                        
						pRs->MoveNext ();
					   }
				   }
                   pRs->Close ();
				}
			}
            clmysql->mysqlDisConnect ();
	}
	else
		MessageBox("数据库连接失败!");

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -