在MFC中连接SQL Server数据库,并对表进行操作(超简单)

必要准备

首先必须有你的数据库,以及表。我的电脑名字是LZW-GOOD,登录用户名是sa。
在这里插入图片描述
我这里使用的数据库是test0,表是Student。
在这里插入图片描述

需要包含的头文件


#include "afxdialogex.h"
#include <icrsint.h>
#include <windows.h>  
#include <sqltypes.h>  
#include <sql.h>  
#include <sqlext.h>
#import "c:\program files\common files\system\ado\msado15.dll"  no_namespace rename("EOF", "adoEOF")

如果大家运行时,抛出了异常,多半是因为sql语句错了。
也有可能是插入时主键约束等原因
我下方的代码不可以直接运行,需要大家修改其中的sql语句,也就是其中的字符串。

连接数据库

	//初始化指针
	_ConnectionPtr pMyConnect = NULL;
	HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
	if (FAILED(hr))
		return;
	//初始化连接字符串
	_bstr_t strConnect = "Driver={sql server};server=127.0.0.1;uid=sa;pwd=123456;database=test0;";
	//执行连接
	try
	{
		// 调用Open方法
		pMyConnect->Open(strConnect, "", "", NULL);
	}
	catch (_com_error &e) //连接异常
	{
		MessageBox(e.Description(), TEXT("提示"), MB_OK | MB_ICONINFORMATION);
	}

如果没有弹出对话框提示异常,表明连接成功

执行sql语句

查询

	//初始化Recordset指针
	_RecordsetPtr pRecordset;
	pRecordset.CreateInstance(__uuidof(Recordset));
	//查询
	CString strsql = TEXT("select * from student");
	pRecordset = pMyConnect->Execute(_bstr_t(strsql), NULL, adCmdText);//将查询结果导入pRecordset数据容器
	
	//遍历并读取sname列的记录并输出
	while (!pRecordset->adoEOF)
	{
		CString temp = (TCHAR *)(_bstr_t)pRecordset->GetFields()->GetItem("sname")->Value; 
		AfxMessageBox(temp);//以对话框显示所有sname
		//这里添加你的判断代码
		

		pRecordset->MoveNext();
	}

遍历弹出的对话框
在这里插入图片描述
在这里插入图片描述
等等…

修改

	//修改
	strsql = TEXT("update student set sname ='爸爸' where sname='王敏'");
	pRecordset = pMyConnect->Execute(_bstr_t(strsql), NULL, adCmdText);

插入

	//以常量插入
	strsql = TEXT("insert into student values('001','测试','男',20,'ABC')");
	pRecordset = pMyConnect->Execute(_bstr_t(strsql), NULL, adCmdText);

	//以变量插入
	CString id = TEXT("002");
	CString name=TEXT("测试");
	CString sex = TEXT("男");
	int age = 20;
	CString dep = TEXT("ABC");
	strsql.Format(TEXT("insert into student values('%s','%s','%s',%d,'%s')"), id, name, sex, age, dep);
	pRecordset = pMyConnect->Execute(_bstr_t(strsql), NULL, adCmdText);

在这里插入图片描述

删除

	//删除
	strsql = TEXT("delete from student where sname='测试'");
	pRecordset = pMyConnect->Execute(_bstr_t(strsql), NULL, adCmdText);

CString的格式化

Format()
常用的格式字符

表示含义
%s字符串,例如TEXT(“Hello!”)
%d整数,int
%ld长整数,long
%f单精度浮点数,float
%lf双精度浮点数,double

更加详细的内容可以阅读以下几位博主的文章
参考文章1
参考文章2
参考文章3

  • 7
    点赞
  • 114
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
MFC连接SQL Server数据库,需要使用以下步骤: 1. 首先,需要在系统安装SQL Server数据库,并且创建好需要连接数据库和表。 2. 在MFC应用程序添加数据库支持。在“项目”菜单选择“添加类”,在“添加类”对话框选择“MFC类向导”,然后选择“数据库”选项,按照向导的指示完成添加。 3. 在代码打开数据库连接。可以在应用程序初始化(InitInstance)函数打开连接,也可以在需要访问数据库的地方打开连接。建议使用CDatabase类来连接数据库,示例代码如下: ``` CDatabase db; db.OpenEx("DRIVER={SQL Server};SERVER=<server_name>;DATABASE=<database_name>;UID=<user_id>;PWD=<password>"); ``` 其,<server_name>表示SQL Server的名称或IP地址,<database_name>表示需要连接数据库名称,<user_id>和<password>表示登录SQL Server的用户名和密码。 4. 执行SQL语句或访问表数据。可以使用CDaoRecordset类或CRecordset类来执行SQL语句或访问表数据,示例代码如下: ``` CDaoRecordset rs(&db); rs.Open(dbOpenDynaset, "SELECT * FROM <table_name>"); while (!rs.IsEOF()) { // 处理数据 rs.MoveNext(); } rs.Close(); ``` 其,<table_name>表示需要访问的表名称。 5. 关闭数据库连接。在不需要访问数据库时,应该关闭数据库连接,示例代码如下: ``` db.Close(); ``` 以上就是在MFC连接SQL Server数据库的基本步骤。需要注意的是,由于MFC数据库支持依赖于ODBC驱动程序,因此需要在系统安装相应的ODBC驱动程序。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序鸡

如果帮到您,点个赞鼓励一下吧。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值