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

📄 logindlg.cpp

📁 VC+SQL SERVER 2000环境下开发的商品销售管理系统
💻 CPP
字号:
// LoginDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "SaleManager.h"
#include "LoginDlg.h"
#include ".\logindlg.h"


// CLoginDlg 对话框

IMPLEMENT_DYNAMIC(CLoginDlg, CDialog)
CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CLoginDlg::IDD, pParent)
{
}

CLoginDlg::~CLoginDlg()
{
}

void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_EDIT_USER, m_UserName);
	DDX_Text(pDX, IDC_EDIT_PASS, m_PassWord);
}


BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)
	ON_BN_CLICKED(IDOK,OnOK)
END_MESSAGE_MAP()


// CLoginDlg 消息处理程序

BOOL CLoginDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	HRESULT hr;

	try
	{
		hr = m_pConnection.CreateInstance(__uuidof(Connection));

		if(SUCCEEDED(hr))
		{
			//m_pConnection->ConnectionString = "File Name=SaleManagerdata.udl";
			m_pConnection->ConnectionTimeout = 20;

			hr = m_pConnection->Open("Provider=SQLOLEDB;Server=.;Database=SaleMessage;uid=sa;pwd=huangguo;","","",adConnectUnspecified);

			if(FAILED(hr))
			{
				AfxMessageBox("打开失败");
				return TRUE;
			}
		}
		else
		{
			AfxMessageBox("创建连接实例失败!");
			return TRUE;
		}
	}
	catch(_com_error &e)
	{
		AfxMessageBox(e.ErrorMessage());
		return TRUE;
	}


	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}


void CLoginDlg::OnOK()
{
	_RecordsetPtr m_pRecordset;
	HRESULT       hr;
    hr = m_pRecordset.CreateInstance(__uuidof(Recordset));
    
	if(FAILED(hr))
	{
		AfxMessageBox("创建实例失败!");
		PostMessage(WM_QUIT);
	}

	CString strSQL = "select * from LoginTable";
	try
	{
		hr = m_pRecordset->Open (_variant_t(strSQL),
			                     m_pConnection.GetInterfacePtr(),
			                     adOpenDynamic,
			                     adLockOptimistic,
			                     adCmdText);       
		if(SUCCEEDED(hr))
		{
			UpdateData(TRUE);

			_variant_t   var;
			CString      strValue;
			int          curItem = 0;
			bool         FlagUserName = FALSE;
			bool         FlagPassWord = FALSE;
			int          CanUse;

			while(!m_pRecordset->adoEOF)
			{
				var = m_pRecordset->GetCollect ("AccountName");
				if(var.vt != VT_NULL)
					strValue = (LPTSTR) bstr_t (var);
				
				if(m_UserName == strValue)
				{
					FlagUserName = TRUE;
					break;
				}			
				m_pRecordset->MoveNext ();
			}//while

			if(FlagUserName == FALSE)
			{
				AfxMessageBox ("用户名错误!");
				m_UserName = "";
				m_PassWord = "";
				UpdateData (FALSE);
				GetDlgItem (IDC_EDIT_USER)->SetFocus();
			}
			else{
				m_pRecordset->MoveFirst();
				while(!m_pRecordset->adoEOF)
				{
					var = m_pRecordset->GetCollect ("Pass");
					if(var.vt != VT_NULL)
						strValue = (LPTSTR) bstr_t (var);

					if(m_PassWord == strValue)
					{
						FlagPassWord = TRUE;
						var = m_pRecordset->GetCollect("CanUse");
						if(var.vt != VT_NULL)
						   CanUse = (int)_variant_t(var);
						break;
					}
					m_pRecordset->MoveNext();
				}//while

				if(FlagPassWord == FALSE)
				{
					AfxMessageBox("密码错误!");
					m_PassWord = "";
					UpdateData (FALSE);
					GetDlgItem (IDC_EDIT_PASS)->SetFocus();
					return;
				}//if

				if(FlagPassWord && FlagUserName)
				{
				  if(CanUse)
				  {
					m_pRecordset->Close();
	                m_pRecordset = NULL;
					Send();
					m_pConnection->Close();
					CDialog::OnOK();
				  }
				  else
				  {
					  AfxMessageBox(_T("该帐号已经禁用!"));
					  m_UserName = "";
					  m_PassWord = "";
				      UpdateData (FALSE);
				      GetDlgItem (IDC_EDIT_USER)->SetFocus();
				  }
				}//if
			}
		}
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
		return;
	}
}

void CLoginDlg::Send()
{
	_RecordsetPtr m_pRecordset;
	HRESULT       hr;
    hr = m_pRecordset.CreateInstance(__uuidof(Recordset));
    
	if(FAILED(hr))
	{
		AfxMessageBox("创建实例失败!");
		PostMessage(WM_QUIT);
	}

	CString strSQL ;
	strSQL.Format("select * from LoginTable where AccountName = '%s'",m_UserName);
	try
	{
		hr = m_pRecordset->Open (_bstr_t(strSQL),
			                     m_pConnection.GetInterfacePtr(),
			                     adOpenDynamic,
			                     adLockOptimistic,
			                     adCmdText);
		int        AccountNum;
		_variant_t var;

		var = m_pRecordset->GetCollect("AccountNum");
		AccountNum = (int)_variant_t(var);

		m_AccountNum = AccountNum;

		HRESULT       hrP;
		_RecordsetPtr m_pRecordsetP;
		hrP = m_pRecordsetP.CreateInstance(__uuidof(Recordset));
		if(FAILED(hrP))
		{
			AfxMessageBox(_T("创建实例失败!"));
			return;
		}

		strSQL.Empty();
		strSQL.Format ("select * from PowTable where AccountNum = %d",AccountNum);
		hrP = m_pRecordsetP->Open (_bstr_t(strSQL),
			                     m_pConnection.GetInterfacePtr(),
			                     adOpenDynamic,
			                     adLockOptimistic,
			                     adCmdText);
		CString strValue;
		var = m_pRecordsetP->GetCollect ("RealName");
		strValue = (LPCSTR)_bstr_t(var);
		m_RealName = strValue;

		var = m_pRecordsetP->GetCollect ("PowerName");
		strValue = (LPCSTR)_bstr_t(var);

		m_PowerName = strValue;

		m_pRecordset->Close();
		m_pRecordsetP->Close();
		m_pRecordset = NULL;
		m_pRecordsetP = NULL;
		
	}
	catch(_com_error &e)
	{
		AfxMessageBox(e.ErrorMessage());
		PostMessage(WM_QUIT,0,0);
	}
}

⌨️ 快捷键说明

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