热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

MFC+Access用户验证程序(初级数据库编程)

MFC+Access用户验证程序(初级数据库编程)企业即时通讯软件流程:弹出对话框,要求输入用户及密码,正确则跳到主对话框,错误则要求重新输入,关闭则什么也不做退出。三无程序,有用的或刚学ADO的看看。s

MFC + Access 用户验证程序(初级数据库编程) 企业即时通讯 软件流程:弹出对话框,要求输入用户及密码,正确则跳到主对话框,错误则要求重新输入,关闭则什么也不做退出。三无程序,有用的或刚学ADO的看看。 ////////////////////////////////////////// s

MFC + Access 用户验证程序(初级数据库编程)

企业即时通讯

软件流程: 弹出对话框,要求输入用户及密码,正确则跳到主对话框,错误则要求重新输入,关闭则什么也不做退出。 三无程序,有用的或刚学ADO的看看。

////////////////////////////////////////// stdafx.h

// stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently //

#if !defined(AFX_STDAFX_H__B170E8A6_57B5_4B19_A471_C368C30871F1__INCLUDED_) #define AFX_STDAFX_H__B170E8A6_57B5_4B19_A471_C368C30871F1__INCLUDED_

#if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000

#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers

#include // MFC core and standard components #include // MFC extensions #include // MFC Automation classes #include // MFC support for Internet Explorer 4 Common Controls #ifndef _AFX_NO_AFXCMN_SUPPORT #include // MFC support for Windows Common Controls #endif // _AFX_NO_AFXCMN_SUPPORT

#include #import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF","adoEOF")

//{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__B170E8A6_57B5_4B19_A471_C368C30871F1__INCLUDED_) ---------------------------------------------------------------------------------------------------------------------------------------------------

#if !defined(AFX_LOGINDLG_H__C757DD49_652B_41A1_84C3_EC0D3C40A07F__INCLUDED_) #define AFX_LOGINDLG_H__C757DD49_652B_41A1_84C3_EC0D3C40A07F__INCLUDED_

#if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // LoginDlg.h : header file //

///////////////////////////////////////////////////////////////////////////// // CLoginDlg dialog

class CLoginDlg : public CDialog { // Construction public: BOOL UserValid(); CLoginDlg(CWnd* pParent = NULL); // standard constructor

// Dialog Data //{{AFX_DATA(CLoginDlg) enum { IDD = IDD_DIALOG1 }; // NOTE: the ClassWizard will add data members here //}}AFX_DATA

// Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CLoginDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL

// Implementation protected:

// Generated message map functions //{{AFX_MSG(CLoginDlg) virtual void OnOK(); virtual void OnCancel(); virtual BOOL OnInitDialog(); //}}AFX_MSG DECLARE_MESSAGE_MAP() };

//{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_LOGINDLG_H__C757DD49_652B_41A1_84C3_EC0D3C40A07F__INCLUDED_)

---------------------------------------------------------------------------------------------------------------------------------------------------

// LoginDlg.cpp : implementation file //

#include "stdafx.h" #include "userlogin.h" #include "LoginDlg.h" #include "userloginDlg.h"

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

///////////////////////////////////////////////////////////////////////////// // CLoginDlg dialog

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

void CLoginDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CLoginDlg) // NOTE: the ClassWizard will add DDX and DDV calls here //}}AFX_DATA_MAP }

BEGIN_MESSAGE_MAP(CLoginDlg, CDialog) //{{AFX_MSG_MAP(CLoginDlg) //}}AFX_MSG_MAP END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////////////// // CLoginDlg message handlers

void CLoginDlg::OnOK() { // TODO: Add extra validation here /* char *szBuf = new char[128]; GetDlgItemText(IDC_EDIT1, szBuf, 128); MessageBox(szBuf);*/ if (! UserValid()) return;

CDialog::OnOK(); }

void CLoginDlg::OnCancel() { // TODO: Add extra cleanup here

CDialog::OnCancel(); }

BOOL CLoginDlg::UserValid() { _ConnectionPtr &cPtr = ((CUserloginDlg*)GetParent())->m_pConn; char* szUserName = (char*)((CUserloginDlg*)GetParent())->m_szUserName;

_RecordsetPtr pRs; pRs.CreateInstance(__uuidof(Recordset));

// 确保用户名输入不为空 char szName[128]; GetDlgItemText(IDC_EDIT1, szName, 128); if (NULL == szName[0]) { AfxMessageBox("用户名不能为空!"); return FALSE; } char szpw[128]; GetDlgItemText(IDC_EDIT2, szpw, 128); if (NULL == szpw[0]) { AfxMessageBox("密码不能为空!"); return FALSE; }

// 从 account 表里读出用户信息 char szSQL[256]; sprintf(szSQL, "%s%s", "SELECT * FROM account where username='", szName); strcat(szSQL, "'");

try { HRESULT hr = pRs->Open(szSQL, cPtr.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);

// 确保用户存在 if (pRs->adoEOF) { AfxMessageBox("用户名无效,请重新输入!"); pRs->Close(); pRs.Release(); return FALSE; } }

catch (_com_error e) { AfxMessageBox(e.ErrorMessage()); }

CString l_str; variant_t var;

try { var = pRs->GetCollect(_variant_t("password")); if (var.vt != VT_NULL) { l_str = (LPCTSTR)_bstr_t(var); if (l_str == szpw) { // AfxMessageBox("密码正确"); strcpy(szUserName, szName); } else { AfxMessageBox("密码错误,请重新输入!"); return FALSE; } } else { l_str = _T("none"); AfxMessageBox(l_str); return FALSE; } } catch (_com_error e) { AfxMessageBox(e.Description()); } pRs->Close(); pRs.Release(); }

BOOL CLoginDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }

--------------------------------------------------------------------------------------------------------------------------------------------------

// userlogin.h : main header file for the USERLOGIN application //

#if !defined(AFX_USERLOGIN_H__433A5C98_5C19_49A2_8ACA_5AD5FF116D77__INCLUDED_) #define AFX_USERLOGIN_H__433A5C98_5C19_49A2_8ACA_5AD5FF116D77__INCLUDED_

#if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000

#ifndef __AFXWIN_H__ #error include 'stdafx.h' before including this file for PCH #endif

#include "resource.h" // main symbols

///////////////////////////////////////////////////////////////////////////// // CUserloginApp: // See userlogin.cpp for the implementation of this class //

class CUserloginApp : public CWinApp { public: CUserloginApp();

// Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CUserloginApp) public: virtual BOOL InitInstance(); //}}AFX_VIRTUAL

// Implementation

//{{AFX_MSG(CUserloginApp) // NOTE - the ClassWizard will add and remove member functions here. // DO NOT EDIT what you see in these blocks of generated code ! //}}AFX_MSG DECLARE_MESSAGE_MAP() };

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_USERLOGIN_H__433A5C98_5C19_49A2_8ACA_5AD5FF116D77__INCLUDED_) ----------------------------------------------------------------------------------------------------------------------------------------------

// userlogin.cpp : Defines the class behaviors for the application. //

#include "stdafx.h" #include "userlogin.h" #include "userloginDlg.h"

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

///////////////////////////////////////////////////////////////////////////// // CUserloginApp

BEGIN_MESSAGE_MAP(CUserloginApp, CWinApp) //{{AFX_MSG_MAP(CUserloginApp) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG ON_COMMAND(ID_HELP, CWinApp::OnHelp) END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////////////// // CUserloginApp construction

CUserloginApp::CUserloginApp() { // TODO: add construction code here, // Place all significant initialization in InitInstance }

///////////////////////////////////////////////////////////////////////////// // The one and only CUserloginApp object

CUserloginApp theApp;

///////////////////////////////////////////////////////////////////////////// // CUserloginApp initialization

BOOL CUserloginApp::InitInstance() { OleInitialize(NULL); AfxEnableControlContainer();

// Standard initialization // If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following // the specific initialization routines you do not need.

#ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif

CUserloginDlg dlg; m_pMainWnd = &dlg; int nRespOnse= dlg.DoModal(); if (nRespOnse== IDOK) { // TODO: Place code here to handle when the dialog is // dismissed with OK } else if (nRespOnse== IDCANCEL) { // TODO: Place code here to handle when the dialog is // dismissed with Cancel }

// Since the dialog has been closed, return FALSE so that we exit the // application, rather than start the application's message pump. return FALSE; }

推荐阅读
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • This document outlines the recommended naming conventions for HTML attributes in Fast Components, focusing on readability and consistency with existing standards. ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
author-avatar
252575936_8ea84a
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有