C++ 通过ADO.Net实现与MySql数据库连接 入门教程
2016-07-15 17:15
615 查看
C++ 通过ADO.Net实现与MySql数据库连接 入门教程
前言
由于项目需要实现一个登录注册界面的功能。考虑到数据存储的问题,自己熟悉的Java与Android可以很方面的通过JDBC或内置的类实现与数据库的交互。所以考虑尝试用C++连接电脑上已经安装的MySql数据库实现数据存储的功能。折腾了一整天,终于完成了自己需要的功能。特地来写一篇博文记录一下基本的开发过程。一、开发环境
Win8VS 2013
Xampp 中的 MySql
MySQL Workbench (MySql数据库可视化工具)
二、开发过程
1.在电脑上安装MySql,推荐xampp,超级好用。可视化工具我用的是MySQL Workbench
2.在MySql创建好数据库后需要注册ODBC数据源,操作如下图
打开控制面板搜索数据源
点击进入管理工具选择相应的
点击“添加” ,先选择MySql对应的驱动
如果找不到驱动,切换下32位(64位)的看有没有,如果还没有,搜索 mysql-connector-odbc 去官网下载对应的驱动。
注意一定一定要下载与MySql数据库版本对应的驱动,血的教训!!!
选择好驱动后,选择数据库
到这里完成ODBC数据源的注册工作
3.创建项目(我做的是C++/CLR窗口项目)
注意一定要看有没有引入命名空间 using namespace System::Data; using namespace System::Data::Odbc;
4.编写相关代码完成与数据库的交互
获取数据库中的数据DataSet^ UserDataSet; OdbcDataAdapter^ Adapter; OdbcConnection^ Conn = gcnew OdbcConnection("DSN=tm_db;UID=root;PWD=;"); //注意没密码则PWD=; Adapter = gcnew OdbcDataAdapter("select语句", Conn); UserDataSet = gcnew DataSet(); Adapter->Fill(UserDataSet, "tbl_user"); for each(DataRow^ row in UserDataSet->Tables["tbl_user"]->Rows){ // 所有数据都封装在了Rows,可查询相关API获取你需要的数据 str_pwd += row["password"]; }
向数据表中添加书籍数据
DataSet ^ UserData; OdbcDataAdapter^ Adapter; OdbcConnection^ Conn = gcnew OdbcConnection("DSN=tm_db;UID=root;PWD=;"); Adapter = gcnew OdbcDataAdapter("select * from tbl_user", Conn); UserData = gcnew DataSet(); Adapter->Fill(UserData, "tbl_user"); DataTable ^ userTable = UserData->Tables["tbl_user"]; DataRow ^ NewRow; NewRow = userTable->NewRow(); NewRow["account"] = tb_account; NewRow["password"] = tb_pwd; userTable->Rows->Add(NewRow); try{ UserData = UserData->GetChanges(); if (UserData){ OdbcCommandBuilder ^ bu = gcnew OdbcCommandBuilder(Adapter); Adapter->Update(UserData,"tbl_user"); UserData->AcceptChanges();//到这里成功向数据库中插入数据 MessageBoxButtons btn = MessageBoxButtons::OK; System::Windows::Forms::DialogResult result = MessageBox::Show("用户注册成功!", "提示", btn); if (result == System::Windows::Forms::DialogResult::OK){ this->Close(); } } } catch (Exception ^ e){ MessageBox::Show(e->Message); }
三、踩过的坑
1.如果没找到MySql的ODBC驱动器则去官网下载一个,一键安装2.MySql的ODBC驱动器版本一定要和MySql对应,否则运行的时候后崩溃!!!我因为这个折腾了一个下午!
3.如果数据库登陆没密码,则写成 gcnew OdbcConnection(“DSN=tm_db;UID=root;PWD=;”); 的形式。
四、参考资料
《C++程序设计基础 下》(第四版) 作者:周霭如,徐红云,黄小兵还有很多很多搜索出来的帖子!这部分知识的帖子超级少!!感谢热爱分享的你们!
相关文章推荐
- C#使用Ado.net读取Excel表的方法
- C#使用ADO.Net部件来访问Access数据库的方法
- ADO.NET基础知识汇总
- 浅谈ADO.NET数据库脚本
- ADO.NET EF中的实体修改方法
- ADO.NET编程之基础知识
- ADO.NET 的最佳实践技巧
- ADO.NET通用数据库访问类
- ASP.NET中实现把Json数据转换为ADO.NET DataSet对象
- ADO.NET无连接模式的详细介绍
- ADO.NET 读取EXCEL的实现代码((c#))
- ADO.NET通用数据库访问类
- 趣味理解ADO.NET对象模型 系列二——进水笼头--建立Connection
- ADO.NET与抽水的故事 系列四——输水管——DataAdapter
- SQL Server 2000+ADO.NET实现并发控制...(一)
- SQL Server 2000+ADO.NET实现并发控制...(二)
- SQL Server 2000+ADO.NET实现并发控制...(三)
- Overview of the Architecture of ADO.NET.
- Overview of the Architecture of ADO.NET
- Spring.Net 框架(一)(二)(三)