vs2017 + sqlserver(mfc操作sqlserver示例)

以前用的mysql多,最近有个项目需要在vs环境下使用SQL server,这里给大家分享一下sqlserver的安装过程及vs中mfc测试sqlserver数据的常规操作。
sqlserver2016安装包、SSMS工具可网盘下载。
链接:https://pan.baidu.com/s/1bvKcPa5yOAPPGTjdXXm2qQ
提取码:gcx2

一、安装SQL server
注意:如果之前安装失败过则一定要将sqlserver 卸载干净,所有SQL server相关的都卸载,可借助工具 Windows Install Clean Up.exe来卸载,同时相关的文件夹,包括隐藏的文件夹均需删除,注册表中都需删除干净。
1.安装过程大家参考百度别人写的教程,可能安装过程会报错没有jdk环境什么的,安装一个jdk7或8都可以。
安装过程中设置并记住用户密码。
2.设置TCP1433端口
开始中找到SQL server2016配置管理器,
在这里插入图片描述
在这里插入图片描述

二、安装数据库管理工具SSMS
三、SSMS安装完后建立sa用户连接
在这里插入图片描述
启用TCP/IP,将IP1、IP2的Active及Enabled设为是,端口为1433在这里插入图片描述
客户端协议同样的也启用,有VIA的则禁用VIA
在这里插入图片描述
设置完后重新将服务启动
在这里插入图片描述

四、创建测试数据库及表格
右键连接下面的数据库建立Animals数据库
在这里插入图片描述
右键Animals选择新建表
在这里插入图片描述
输入字段id,字段name,Ctrl + S保存表明table_dogs
在这里插入图片描述
五、表格添加记录
右键Animals-表选择刷新,右键点击dbo.table_dogs,选择编辑前200行。编辑记录并保存(Ctrl + S)
在这里插入图片描述
六、vs连接数据库测试

打开vs2017(以vs2017为例其他版本都差不多),点击工具菜单-连接到数据库,点击连接测试,提示成功
在这里插入图片描述
在这里插入图片描述
六、ok,现在我们在代码中来操作我们的数据库了!

  1. vs2017新建MFC项目,我的是默认名称MFCApplication2,基于对话框,高级功能全部不选。生成完后没有stdafx.h文件,采用ADO连接数据库需要用到它怎么办?没关系,自己手动写,一下是代码。其中msado15.dll目录大家核查自己的目录,不同的话相应调整。
#pragma once
#if !defined(AFX_STDAFX_H__C4B5DA9B_21EA_47D6_9253_A4245E58FBF5__INCLUDED_)
#define AFX_STDAFX_H__C4B5DA9B_21EA_47D6_9253_A4245E58FBF5__INCLUDED_
#if _MSC_VER > 1000

#pragma once
#endif // _MSC_VER > 1000
// TODO: reference additional headers your program requires here
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__C4B5DA9B_21EA_47D6_9253_A4245E58FBF5__INCLUDED_)

2.对话框头文件中添加 (CMFCApplication2Dlg.h)
#include “stdafx.h”
同时编辑类声明:

public:
	BOOL ExcuteCmd(CString bstrSqlCmd);
protected:
	_bstr_t m_sqlCmd;
	_ConnectionPtr m_pConnection;//连接access数据库的链接对象  
	_RecordsetPtr m_pRecordset;//结果集对象

3.对话框源文件添加定义(CMFCApplication2Dlg.cpp)

BOOL CMFCApplication2Dlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动
	//  执行此操作
	SetIcon(m_hIcon, TRUE);			// 设置大图标
	SetIcon(m_hIcon, FALSE);		// 设置小图标

	// TODO: 在此添加额外的初始化代码
	AfxOleInit();
	HRESULT hr;

	hr = m_pConnection.CreateInstance("ADODB.Connection");
	m_pConnection->ConnectionTimeout = 8;
	try
	{
		_bstr_t strConnect = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=123456;Initial Catalog=Test;Data Source=DESKTOP-xxx";//初始化连接  
		hr = m_pConnection->Open(strConnect, "", "", adModeUnknown);//打开数据库
		if (FAILED(hr))
		{
			AfxMessageBox(_T("不能连接数据库!"));
			return FALSE;
		}
		else
		{
			AfxMessageBox(_T("连接数据库成功!"));
			return TRUE;
		}
	}
	catch (_com_error e)
	{
		AfxMessageBox(e.Description());

		return FALSE;
	}

	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

BOOL CMFCApplication2Dlg::ExcuteCmd(CString bstrSqlCmd)//执行SQL语句
{
	CMFCApplication2Dlg ct;
	m_sqlCmd = _bstr_t(bstrSqlCmd);
	_variant_t RecordsAffected;

	try {
		m_pRecordset = m_pConnection->Execute(m_sqlCmd, &RecordsAffected, adCmdText);
	}
	catch (_com_error e) {
		AfxMessageBox(e.ErrorMessage());
		return FALSE;
	}
	return TRUE;
}

4.对话框界面添加一个按钮,按钮文本为“添加”,编辑相应的消息响应函数

void CMFCApplication2Dlg::OnBnClickedButton1()
{
	//最后一行插入一条记录id,name(88,‘金毛')
	//服务器数据库名称Test,表格Info,
	CString Sql;
	Sql = "INSERT INTO [Animals].[dbo].[table_dogs]([id],[name]) VALUES('8','小金毛')";
	//OnInitDialog();
	if (!ExcuteCmd(Sql))
		AfxMessageBox(_T("添加失败!"));
	else
		AfxMessageBox(_T("添加成功!"));
}

5.上面的 strConnect 生成方法,在桌面随意建立一个文件后缀 为udl,如test.dul,双击打开,输入指定的信息
在这里插入图片描述
点击测试连接,连接成功,点击确定,关闭后再以文本文件方式打开test.udl,此时连接字符串已生成拷贝一下在这里插入图片描述
注意连接字符串中若没有password则手动加上。将连接字符串赋值给strConnect 。
编译运行,点击添加按钮,数据库中即插入了一条新的记录“小金毛”。增删查改的操作都差不多。就不再挨个演示了。
运行结果:
在这里插入图片描述
在这里插入图片描述
将表格关闭后重新打开,已经多了一条记录:
在这里插入图片描述
恭喜你,终于弄好了!喝杯咖啡去~

  • 4
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
连接SQL Server数据库可以使用MFC的ODBC类。以下是连接SQL Server数据库的步骤: 1. 在项目中添加ODBC类库的支持。 在Visual Studio中打开项目属性,选择“配置属性”->“常规”,在“使用MFC”中选择“使用MFC静态库”,然后在“使用MFC的扩展功能”中选择“使用MFC ODBC类”。 2. 在代码中包含ODBC头文件。 #include <afxdb.h> 3. 声明ODBC连接对象。 CDatabase db; 4. 打开ODBC连接。 CString strConnection = _T("ODBC;DRIVER={SQL Server};SERVER=服务器名称;DATABASE=数据库名称;UID=用户名;PWD=密码;"); if (db.OpenEx(strConnection, CDatabase::noOdbcDialog)) { // 连接成功 } else { // 连接失败 } 其中,strConnection是连接字符串,需要根据实际情况修改。SERVER是SQL Server的名称,DATABASE是要连接的数据库名称,UID和PWD是登录数据库的用户名和密码。 5. 执行SQL语句。 可以使用CDaoRecordset或CRecordset类来执行SQL语句。例如: // 执行SELECT语句 CRecordset rs(&db); rs.Open(CRecordset::forwardOnly, _T("SELECT * FROM 表名")); while (!rs.IsEOF()) { // 处理查询结果 rs.MoveNext(); } // 执行INSERT语句 CString strSql = _T("INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2)"); db.ExecuteSQL(strSql); // 执行UPDATE语句 strSql = _T("UPDATE 表名 SET 列1 = 值1 WHERE 列2 = 值2"); db.ExecuteSQL(strSql); // 执行DELETE语句 strSql = _T("DELETE FROM 表名 WHERE 列1 = 值1"); db.ExecuteSQL(strSql); 以上是MFC连接SQL Server数据库的简单示例,具体实现还需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值