分享

燕山大学数据库三级项目——界面系统设计

 流楚丶格念 2022-01-14

文章目录

项目链接

https://download.csdn.net/download/weixin_45525272/13085403

MFC界面编写

数据库设计代码

-- 账号密码管理系统
create table login(
strname varchar(20),
strpassword varchar(20) not null,
strquestion varchar(40),
stranswer varchar(40),
primary key(strname)
);
insert into login values
('喜子','123456','你就读的大学?','燕山大学'),
('大壮','111111','你多大了?','我还是个孩子');

insert into CUSTOMER values
('1','yim','F','16655'),
('2','tim','M','55555');

select *from login


where strname='喜子'


create table loginsad(
strname int,
strpassword varchar(20) not null,
strquestion varchar(40),
stranswer varchar(40),
primary key(strname)
);
insert into login values
('123','123456','你就读的大学?','燕山大学');

登陆界面

在这里插入图片描述
在这里插入图片描述

找回密码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

功能主界面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
界面不一一展示,大家可以直接下载项目链接

设置了三个常用查询语句的实现

实现代码如下

1.给利派送订单的外卖员的体温:

SELECT Temperature 
FROM DELIVERY_MAN,CUSTOMER,Cus_Evaluate_Deli 
WHERE DELIVERY_MAN.D#=Cus_Evaluate_Deli.D# AND Cus_Evaluate_Deli.C#=CUSTOMER.C# AND CUSTOMER.Cname = '利';

2.被女顾客评价的派送员的平均工资

SELECT avg(Salary) as '平均工资' 
FROM DELIVERY_MAN,CUSTOMER,Cus_Evaluate_Deli
WHERE Cus_Evaluate_Deli.D#=DELIVERY_MAN.D# and Cus_Evaluate_Deli.C#=CUSTOMER.C# 
and CUSTOMER.Csex='F'

3.所有评分大于4.8分的商家的最大浏览次数

select MAX(VisitNumber) as '最大浏览次数'
from STORE,CUSTOMER,Place_Order
where Place_Order.B#=STORE.B# and Place_Order.C#=CUSTOMER.C# 
and Place_Order.VisitNumber>4.8

项目要点

1、与数据库交互——ADO接口(两种方法)

一、ADO类

通过创建ADO对象来对数据库进行操作。

头文件

#pragma once

#import "C:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

class CADOConn
{
public:
CADOConn();
~CADOConn();

_ConnectionPtr m_pConnection;// 对象智能指针连接操作数据库 
_RecordsetPtr m_pRecordPtr;// 对象指针(记录集)

// 初始化连接数据库,执行查询,执行SQL语句,断开连接
// 初始化连接数据库,执行查询,执行SQL语句,断开连接
void OnInitDBConnect();
_RecordsetPtr &GetRecordSet(_bstr_t bstrSQL);
BOOL ExecuteSQL(_bstr_t bstrSQL);
void ExitConnect();
};


源文件

#include "stdafx.h"
#include "ADOConn.h"


CADOConn::CADOConn()
{
}


CADOConn::~CADOConn()
{
}



void CADOConn::OnInitDBConnect()
{
// 创建connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置字符串
_bstr_t strConnect = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ROOSYS;Data Source=.";// Catalog数据库名称,Data数据库 .表示本地数据库

// 连接数据库   双引号里写对应连接数据库的账号和密码
m_pConnection->Open(strConnect, "", "", adModeUnknown);
}

_RecordsetPtr & CADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
if (m_pConnection == NULL)// 连接对象不存在
OnInitDBConnect();
m_pRecordPtr.CreateInstance(__uuidof(Recordset));// 创建记录集对象
// 执行查询,等待记录集
m_pRecordPtr->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
}
catch (_com_error e)// 捕捉异常
{
AfxMessageBox(e.Description());
}

return m_pRecordPtr;// 返回记录集
}


BOOL CADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
try
{
if (m_pConnection == NULL)
{
OnInitDBConnect();
}
m_pConnection->Execute(bstrSQL, NULL, adCmdText);

return true;
}
catch (_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}

void CADOConn::ExitConnect()
{
if (m_pConnection != NULL)
{
m_pRecordPtr->Close();// 关闭记录
m_pConnection->Close();// 关闭连接
}

// 清除缓存
::CoUninitialize();
}


二、通过pRes直接操作ADO

连接操作

初始化连接中 strConnect = “Provider=SQLOLEDB;Server=127.0.0.1,1433;Database=ROOSYS;uid=Sa;pwd=123456”;//初始化连接

其中参数:

server:你所要连数据库的主机IP地址
database:数据库名
uid:权限(sa是管理员权限)
pwd:数据库密码

// TODO:  在此添加额外的初始化
CoInitialize(NULL); //initialize COM environment
pRst.CreateInstance("ADODB.Recordset");
pMyConnect.CreateInstance("ADODB.Connection");
_bstr_t strConnect;//smart_prt-connectional command;
//strConnect = "Provider=SQLOLEDB;Server=localhost;Database=testDB;uid=Sa;pwd=123456";

strConnect = "Provider=SQLOLEDB;Server=127.0.0.1,1433;Database=ROOSYS;uid=Sa;pwd=123456";//初始化连接

try
{
pMyConnect->Open(strConnect, "", "", adModeUnknown);//服务器连接
MessageBox(_T("连接成功"));
}
catch (_com_error &)
{
MessageBox(_T("连接失败"));
}

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

数据处理操作

CString strbno,strcol,strupdatainfo;
GetDlgItemText(IDC_EDIT_UPDATABNO, strbno);
GetDlgItemText(IDC_EDIT_UPDATACOL, strcol);
GetDlgItemText(IDC_EDIT_UPDATAINFO, strupdatainfo);
CString csinsert;
csinsert.Format(_T("update CUSTOMER set %s='%s' where C#='%s'"),
strcol, strupdatainfo, strbno);

//_bstr_t insert = "insert into TableTest values('name','sex',Age)";
try {
pMyConnect->Execute((_bstr_t)csinsert, NULL, adCmdText);
MessageBox(_T("修改成功"), _T("提示"));
}
catch (_com_error &e)
{
MessageBox(e.ErrorMessage());
}

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多