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

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

项目链接


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());
  }
相关文章
|
3月前
|
存储 关系型数据库 MySQL
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
|
3天前
|
数据管理 数据库 数据安全/隐私保护
Django—同一项目不同app使用不同数据库
在Django项目中实现不同app使用不同数据库的配置,可以通过配置多数据库、创建数据库路由和配置路由来实现。通过这种方法,可以有效地将数据隔离到不同的数据库,提高数据管理的灵活性和系统的可扩展性。希望本文能为开发者在Django项目中使用多数据库提供清晰的指导。
14 4
|
3月前
|
数据可视化 数据库 数据安全/隐私保护
在IDEA中如何用可视化界面操作数据库? 在idea中如何操作数据库? 在idea中如何像Navicat一样操作数据库?
文章介绍了如何在IDEA中使用可视化界面操作数据库,类似于Navicat,以提高数据库操作的效率和管理性。
96 1
在IDEA中如何用可视化界面操作数据库? 在idea中如何操作数据库? 在idea中如何像Navicat一样操作数据库?
|
3月前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
3月前
|
SQL 关系型数据库 MySQL
Go语言项目高效对接SQL数据库:实践技巧与方法
在Go语言项目中,与SQL数据库进行对接是一项基础且重要的任务
118 11
|
4月前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
4月前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
3月前
|
Java 关系型数据库 数据库连接
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第3天】Spring Boot项目中数据库连接问题可能源于配置错误或依赖缺失。YAML配置文件的格式不正确,如缩进错误,会导致解析失败;而数据库驱动不匹配、连接字符串或认证信息错误同样引发连接异常。解决方法包括检查并修正YAML格式,确认配置属性无误,以及添加正确的数据库驱动依赖。利用日志记录和异常信息分析可辅助问题排查。
464 10
|
3月前
|
Java 关系型数据库 MySQL
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第4天】本文分析了Spring Boot应用在连接数据库时可能遇到的问题及其解决方案。主要从四个方面探讨:配置文件格式错误、依赖缺失或版本不兼容、数据库服务问题、配置属性未正确注入。针对这些问题,提供了详细的检查方法和调试技巧,如检查YAML格式、验证依赖版本、确认数据库服务状态及用户权限,并通过日志和断点调试定位问题。
332 6
|
3月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
97 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学