MFC操作MySQL数据库注意事项

本文介绍如何使用MFC通过ODBC连接MySQL数据库并执行查询、添加、更新及删除操作。文中提供了具体的代码示例,包括配置ODBC数据源、使用CDatabase和CRecordset类进行数据操作的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

没有使用MFC很多年了,今天突然需要使用写一个dll,并且需要访问MySQL数据库,开始一头雾水,使用odbc吧,不想使用MySQL提供的dll。

首先下载MySQL的odbc的驱动,并在ODBC数据源管理器配置好。连接成功,即配置ok了。

其次就是写代码了。

CDatabase db;

   db.OpenEx(connString,CDatabase::noOdbcDialog);
   CRecordset rs;
   rs.m_pDatabase =&db;
   rs.Open(CRecordset::snapshot,_T("select Key,Value from table where Id=1;"));
   CString strValue;
   rs.GetFieldValue(L"Key",strValue);
   long long key=_wtoi64(strValue);
   rs.GetFieldValue(L"Value",strValue);
   long long value=_wtoi64(strValue);

   rs.Close();
   db.Close();

查询ok,值得注意的是我安装的mysql的odbc驱动只能支持CRecordset::snapshot的设置。

但是有更新,添加或者删除操作呢?

于是看CRecordset有更新Update和Add的方法。一直报错。大哭

后来在无意中看见一篇文章,说“使用CRecordset类简单是简单,但是有一个缺陷,就是不能对数据库里面的数据进行添加、删除、插入、修改的操作。不信你可以试试rs.AddNew(),系统一定会提示你错误的”。解决实例如下:

CDatabase m_db;
        m_db.Open( _T("ODBC;DSN=mysql;DATABASE=你的数据库名;SERVER=服务器地址;UID=root;PASSWORD=你的密码;"));
        //添加
        m_db.ExecuteSQL(_T("INSERT INTO test VALUES('333','sdfsd')"));
        //修改
        m_db.ExecuteSQL(_T("UPDATE test SET 某列='1111'"));
        //删除
        m_db.ExecuteSQL(_T("DELETE FROM test WHERE 某列='1111'"));
        //关闭数据库
        m_db.Close();

终于成功了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值