更改口令的界面的开发 (VC和数据库应用)

王朝vc·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

// ChangePswDlg.cpp : implementation file

//

#include "stdafx.h"

#include "Address.h"

#include "ChangePswDlg.h"

#include "PswdSet.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

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

// CChangePswDlg dialog

CChangePswDlg::CChangePswDlg(CWnd* pParent /*=NULL*/)

: CDialog(CChangePswDlg::IDD, pParent)

{

//{{AFX_DATA_INIT(CChangePswDlg)

m_oldpassword = _T("");

m_newpassword = _T("");

m_qurenpassword = _T("");

//}}AFX_DATA_INIT

}

void CChangePswDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CChangePswDlg)

DDX_Control(pDX, IDC_EDIT1, m_ctrloldpassword);

DDX_Text(pDX, IDC_EDIT1, m_oldpassword);

DDX_Text(pDX, IDC_EDIT2, m_newpassword);

DDX_Text(pDX, IDC_EDIT3, m_qurenpassword);

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CChangePswDlg, CDialog)

//{{AFX_MSG_MAP(CChangePswDlg)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

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

//名称:OnOk

//功能:更改用户口令

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

void CChangePswDlg::OnOK()

{

// TODO: Add extra validation here

UpdateData(TRUE);//读入用户输入的密码

CDBVariant varValue;///CDBVariant??? A CDBVariant object represents a variant data type for the MFC ODBC classes. CDBVariant is similar to COleVariant; however, CDBVariant does not use OLE. CDBVariant allows you to store a value without worrying about the value’s data type

CPswdSet m_recordset(&m_database);//记录及类

CString strSQL;

strSQL.Format("select * from password where PASSWORD='%s'",m_oldpassword);

m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);

//此处为一种执行SQL语句语法之一,

//int temp=0;

//m_recordset.GetFieldValue(temp,varValue);

//如果输入的密码与数据库中的不一致,则弹出提示框

if(m_recordset.GetRecordCount()==0)//改点特强

//if(m_oldpassword.Compare(varValue.m_pstring->GetBuffer(1))!=0)

{

MessageBox("原密码错误!","提示",MB_OK|MB_ICONINFORMATION);

m_oldpassword.Empty();

m_newpassword.Empty();

m_qurenpassword.Empty();

m_ctrloldpassword.SetFocus();

UpdateData(FALSE);//清空所输入的内容将变化反映到对话框中

}

//如果原密码正确,两次新密码不同

else

{

if(m_newpassword.Compare(m_qurenpassword)!=0)//比较两个字符串是否相同

{

MessageBox("新密码错误!","提示",MB_OK|MB_ICONINFORMATION);

m_oldpassword.Empty();

m_newpassword.Empty();

m_qurenpassword.Empty();

UpdateData(FALSE);//清空所输入的内容

}

else

{

strSQL.Format("update password set PASSWORD='%s' where PASSWORD='%s'",m_newpassword,m_oldpassword);

m_database.ExecuteSQL(strSQL);//该种执行SQL 语句的最佳且最 容易理解的 方法 ,

CDialog::OnOK();

MessageBox("恭喜,口令更改成功!下次登录请使用口令: "+m_newpassword+" ","提示",MB_OK|MB_ICONINFORMATION);

}

}

}

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

//名称:OnInitDialog

//功能:更改口令对话框初始化

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

BOOL CChangePswDlg::OnInitDialog()

{

CDialog::OnInitDialog();

// TODO: Add extra initialization here

m_ctrloldpassword.SetFocus();//注意在定义变量时 有一个技巧的,

//那就是,可以一个控件有两种类型的 变量, 因为不同类型的 变量有不同的成员函数

return TRUE; // return TRUE unless you set the focus to a control

// EXCEPTION: OCX Property Pages should return FALSE

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航