码迷,mamicode.com
首页 > 数据库 > 详细

VC+Access2000+ADO登陆界面实现

时间:2018-10-14 13:56:12      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:||   imp   导入   src   4.0   输入   双击   unknown   adl   

效果图:

技术分享图片

 

 

1.创建Access数据库文件

1.1 新建一个空数据库,本示例数据库文件名为db1.mdb

技术分享图片

 

1.2 双击“使用设计器创建表”

技术分享图片

 

1.3 输入所需的“字段名称”和“数据类型”,关闭并保存,本示例保存为“userID

技术分享图片

 

1.4 双击打开刚保存的表,输入账户、密码信息,关闭并保存

 技术分享图片

 

编写VC程序

2.1 创建一个基于对话框的VC程序

2.2 新建一个CAdo

技术分享图片

 

 

2.3 Ado.h文件中导入windows自带的ado库,如下红色字体

 

#if !defined(AFX_ADO_H__8F1210D9_7884_49EC_90A6_0D9AD99368E8__INCLUDED_)

 

#define AFX_ADO_H__8F1210D9_7884_49EC_90A6_0D9AD99368E8__INCLUDED_

 

 

 

#if _MSC_VER > 1000

 

#pragma once

 

#endif // _MSC_VER > 1000

 

 

 

#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","ADOEOF") rename("BOF", "ADOBOF")

 

 

2.4 CAdo类增加变量和函数,如下

技术分享图片

 

 

2.5 Ado.cpp中实现为CAdo类增加的函数,如下

 

void CAdo::OnInitADO()

 

{

 

try

 

{

 

m_pConnection.CreateInstance(__uuidof(Connection));

 

m_pConnection.CreateInstance(__uuidof(Recordset));

 

m_pConnection.CreateInstance("ADODB.Connection");

 

 

 

m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb","","",adModeUnknown);

 

}

 

catch(_com_error e)

 

{

 

AfxMessageBox("The database link down!");

 

}

 

 

 

}

 

 

 

void CAdo::ExitConnect()

 

{

 

if(m_pRecordset != NULL)

 

{

 

m_pRecordset->Close();

 

}

 

if(m_pConnection != NULL)

 

{

 

m_pConnection->Close();

 

}

 

 

 

 

 

}

 

 

 

void CAdo::Execute(_bstr_t strSQL)

 

{

 

try

 

{

 

if(m_pConnection == NULL)

 

{

 

OnInitADO();

 

}

 

m_pConnection->Execute(strSQL,NULL,adCmdText);

 

}

 

catch(_com_error e)

 

{

 

e.Description();

 

}

 

}

 

 

 

_RecordsetPtr& CAdo::GetRecordset(_bstr_t strSQL)

 

{

 

try

 

{

 

if(m_pConnection == NULL)

 

{

 

OnInitADO();

 

}

 

m_pRecordset.CreateInstance(__uuidof(Recordset));

 

m_pRecordset->Open(strSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

 

}

 

catch(_com_error e)

 

{

 

e.Description();

 

}

 

 

 

return m_pRecordset;

 

}

 

2.6 插入一个新的对话框资源

技术分享图片

 

 

2.7 为登陆对话框新增一个CLOGIN类,选中ResourceView中的“IDD_LOGIN->菜单栏“View->ClassWizard...”,在弹出的对话框中选择“Create a new Class,单击“OK”,在弹出的对话框输入“CLOGIN”类名

技术分享图片

 

 

2.8 CLOGIN类增加控件变量

技术分享图片

 

 

2.9 CxApp类的InitInstance中函数中初始化COM环境

技术分享图片

 

 

2.10  CxDlg类的OnInitDialog函数中return语句前增加如下代码

技术分享图片

 

 

2.11 为登陆对话框的OK”按钮增加单击事件响应函数,并添加如下代码

 

void CLOGIN::OnOK()

 

{

 

// TODO: Add extra validation here

 

 

 

UpdateData(TRUE);

 

CAdo m_ado;

 

m_ado.OnInitADO();

 

CString strSQL;

 

strSQL.Format("select * from userID where user=‘%s‘ and password=‘%s‘",m_userID,m_password);

 

m_ado.m_pRecordset = m_ado.GetRecordset((_bstr_t)strSQL);

 

 

 

if(m_userID.IsEmpty() || m_password.IsEmpty())

 

{

 

MessageBox("UserID or Password can‘t empty!");

 

m_userID = "";

 

m_password = "";

 

UpdateData(FALSE);

 

}

 

else

 

{

 

if(!m_ado.m_pRecordset->ADOEOF)

 

{

 

CDialog::OnOK();

 

}

 

else

 

{

 

MessageBox("The UserID or PassWord is not correct!");

 

m_userID = "";

 

m_password = "";

 

UpdateData(FALSE);

 

}

 

}

 

 

 

 

 

m_ado.ExitConnect();

 

}

 

2.12 将数据库文件放置到VC程序目录下

 

VC+Access2000+ADO登陆界面实现

标签:||   imp   导入   src   4.0   输入   双击   unknown   adl   

原文地址:https://www.cnblogs.com/QSHL/p/9785636.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!