目录
1.安装SQL2017
参考链接:第一个链接有机器学习安装方法,第二个有详细步骤。
https://blog.csdn.net/word_joke/article/details/80031221
https://jingyan.baidu.com/article/574c52195ca15b6c8c9dc172.html
采用最简单的安装方法,不安装机器学习相关内容。(此处为了省事没有安装polybase),安装完了重启电脑,安装sql server managerment studio,链接地址下载ssms 17.9.1,或者第二个链接直接下载
下载地址:
直接下载ssms 17.9.1:
https://go.microsoft.com/fwlink/?linkid=2043154
sql安装完毕!
登录sql --首先 打开sql server 服务---https://jingyan.baidu.com/article/ed15cb1b9a09be1be36981d3.html
登陆成功!!
2.安装vs2017 安装时别忘记勾选MFC模块
解决MFC资源视图问题:
安装完成后全搜索rcdll.dll,将搜索到的rcdll.dll和rc.exe一起复制粘贴到指定目录
...\Windows Kits\10\bin\x86
https://blog.csdn.net/sinat_36793832/article/details/71970565
链接中是安装在c盘的,如果安装在别的盘,找到该盘下对应目录即可,例如我安装在D盘,对应路径如图
3.MFC使用
3.1MFC新建项目
参看 https://blog.csdn.net/wang18323834864/article/details/78621633
资源视图的位置在 视图----其他窗口---资源视图
左侧工具栏里有相对应工具 按钮,静态文本等。。。
3.2 链接数据库
1.数据库的链接准备
首先打开SQL server management studio---选择sql登录,输入用户名sa和密码---数据库---新建数据库(test)
然后在桌面上新建文本文件,重命名为1.dul ,然后双击打开
如图服务器名称为英文句号 . ,选择新建的数据库test,点击确定。用记事本打开1.udl文件,如图,蓝色部分是用来连接数据库的
2.MFC的链接准备
//链接数据库,将自己的蓝色部分替换代码中绿色部分。.cpp
// TODO: 在此添加控件通知处理程序代码
m_pConnectionA.CreateInstance(__uuidof(Connection)); //创建连接对象
//设置连接字符串,Provider=SQLOLEDB.1连接驱动,Initial Catalog=要连接的数据库名,Intergrated
// Security=true 开启windows身份验证
CString ConnectString = _T("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=test;Data Source=.");
try
{
m_pConnectionA->Open((_bstr_t)ConnectString, "", "", adModeUnknown);
}
//捕获异常
catch (_com_error &e)
{
MessageBox((LPCTSTR)e.Description());
m_pConnectionA = NULL;
return;
}
catch (...)
{
AfxMessageBox(_T("未知错误"));
m_pConnectionA = NULL;
return;
}
//定义_RecordsetPtr变量,调用它Recordset对象的Open,即可打开一个数据集
//初始化过程 以下是个实例
_RecordsetPtr pRecordset;
if (FAILED(pRecordset.CreateInstance(__uuidof(Recordset))))
{
return;
}
//执行操作
try
{
pRecordset->Open(_variant_t("stu"),
_variant_t((IDispatch*)m_pConnectionA),
adOpenKeyset, adLockOptimistic, adCmdTable);
}
catch (_com_error &e)
{
}
UpdateData();
在对应头文件中加入成员,
不识别变量_ConnectionPtr和_RecordsetPtr的,在stdafx.h里添加语句:#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF");
注意添加在文件最后!最后!最后!
实现增删改查功能,首先完善使用的头文件,在.cpp文件中补充
#include <Windows.h>
#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <string>
using std::string;
using namespace std;
//增:
//创建记录集对象
m_pRecordset.CreateInstance(__uuidof(Recordset));
//保存编辑框中数据
CString strsql, stuid, stuname, stuclass;
GetDlgItemText(IDC_EDIT1, stuid);
GetDlgItemText(IDC_EDIT2, stuclass);
GetDlgItemText(IDC_EDIT3, stuname);
//生成SQL语句
CString tianjia;
tianjia = '0';
strsql.Format(_T("insert into stu( id, name, uclass) values( '%s', '%s', '%s')"), stuid, stuname, stuclass);
try
{//根据SQL语句更新表中的记录
m_pRecordset->Open((_variant_t)strsql, m_pConnectionA.GetInterfacePtr(), adOpenKeyset, adLockOptimistic, adCmdText);
AfxMessageBox(_T("添加成功"));
}
catch (...)
{
AfxMessageBox(_T("添加失败"));
}
注意 strsql.Format(_T("insert into stu( id, name, uclass) values( '%s', '%s', '%s')"), stuid, stuname, stuclass);语句的格式,id、name、uclass前有一个空格,对应‘%s’前也是有空格的
//删:
//改:
//查:
//创建记录集对象
m_pRecordset.CreateInstance(__uuidof(Recordset));
//保存编辑框中数据
CString strsql, stuid, stuname, stuclass;
GetDlgItemText(IDC_EDIT1, stuid);
GetDlgItemText(IDC_EDIT2, stuclass);
GetDlgItemText(IDC_EDIT3, stuname);
strsql = _T("select * from stu");
m_pRecordset = m_pConnectionA->Execute(_bstr_t(strsql), NULL, adCmdText);//将查询数据导入m_pRecordset数据容器
int err = 0; //将记录集获取的数据一一与输入的数据进行比较
while (!m_pRecordset->adoEOF)//EOF判断是否到末尾
{
CString temp1 = (TCHAR *)(_bstr_t)m_pRecordset->GetFields()->GetItem("id")->Value;
CString temp2 = (TCHAR *)(_bstr_t)m_pRecordset->GetFields()->GetItem("name")->Value;
CString temp3 = (TCHAR *)(_bstr_t)m_pRecordset->GetFields()->GetItem("uclass")->Value;
if (stuid.Compare(temp1) == 0 && stuname.Compare(temp2) == 0 && stuclass.Compare(temp3) == 0)
{
err++;
AfxMessageBox(_T("验证成功!"));
break;
}
else
{
m_pRecordset->MoveNext();
}
}
if (!err)
{
AfxMessageBox(_T("验证失败!"));
}
m_pRecordset->Close();//关闭记录集
感谢链接的大神们!!!学习了!