MFC下ODBC方式连接数据库

1 篇文章 1 订阅
1 篇文章 0 订阅

本篇文章主要记录VS2010环境下,MFC ODBC方式连接SQL Server数据库,通过ODBC数据源连接配置。

1.数据库

首先确保在SQL Server中已经创建好了数据库,如我使用的是chat,其中有两张表t_user,t_message。你可以根据自己的需要写个测试的数据库以及表即可,方便后面的连接操作。

2.创建ODBC数据源

(1).打开控制面板,搜索ODBC,点击管理工具下的设置数据源(ODBC),此时弹出ODBC数据源管理器。


(2).点击添加,创建新的数据源;选择SQL Server,点击完成。


注:(1).名称、描述根据自己需求填写,能辨别连接的哪个数据库即可;
(2).服务器名称为登录SQL Server时,服务器名称。

(3).点击下一步,配置SQLServer DNS;选择‘使用用户输入登录ID和密码的SQL Server验证’,输入登录ID,密码,点击下一步。

(4).选择要连接的数据库,我选择的是chat,点击下一步;此时可以更改语言、日志文件路径等,确认后点击完成。


(5).弹出配置信息,点击‘测试数据源...’,显示测试成功即可。


3.VS2010中创建MFC项目、ODBC类

(1).如我使用的名称是'chat',创建了基于对话框的应用程序,创建完成后设置属性,更改字符集为'使用多字节字符集'。
(2).新建ODBC类,与数据库chat中的表t_user建立映射关系。
1).打开类视图,依次点击'添加-类-MFC ODBC使用者-添加';

2).点击'数据源...',选择机器数据源,选择之前创建好的数据源,如之前的‘SQLServer’,点击确定。


3).输入sqlserver用户名、密码,选择数据库对象,使用表t_user。
注:一个类对应一张表

4).设置类信息,类名、.h名、cpp名,点击确定即会生成此类。


4.MFC中访问数据库,查询数据库。

(1).打开生成的CUser类,注释掉#error安全问题:连接字符串可能包含密码。

(2).在'chat.h'目录中声明CDatabase成员变量,m_database

(3).在对话框中添加按钮‘测试’,双击添加单击响应事件函数OnBnClickedBtnTest(),函数中测试连接数据库获取数据。
CString t_sql;
t_sql.Format("select * from t_user");
CUser *t_user = new CUser(&((CchatApp*)AfxGetApp())->m_database);
if(!t_user -> Open(AFX_DB_USE_DEFAULT_TYPE,t_sql))
{
	MessageBox("打开用户表失败!", "提示");
}
if(t_user->GetRecordCount() != 0)
{
	//遍历t_user表
	do{
		MessageBox(t->m_user_name);
		t_user->MoveNext();
	}while(t_user->IsEOF() != 1);
}
(4).通过ODBC类完成对数据库表的映射,可以对其执行增删改查操作,具体可以自行百度查阅。


  • 12
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MFC中实现登录界面连接数据库,可以使用ODBC来建立与数据库连接。首先需要在本机中配置ODBC数据源,然后使用AppWizard自动生成的代码框架通过ODBC连接数据库。 具体的步骤如下: 1. 首先,在本机的控制面板中找到ODBC数据源管理器,并打开。 2. 在ODBC数据源管理器中,选择“系统 DSN”选项卡,然后点击“添加”按钮。 3. 在新弹出的对话框中,选择对应的数据库驱动程序,然后点击“完成”按钮。 4. 填写数据源名称、描述和服务器等相关信息,然后点击“下一步”按钮。 5. 输入正确的数据库登录信息,然后点击“测试连接”按钮,确认连接成功后,点击“确定”按钮。 6. 现在你已经成功创建了一个ODBC数据源,可以在MFC应用程序中使用这个数据源连接数据库了。 请注意,以上步骤只是简要介绍了如何配置ODBC数据源,而具体的代码实现需要根据具体的情况来定。你可以在MFC应用程序中使用ODBC的API函数或者使用MFC封装的类库来实现数据库连接和操作。 以下是一个简单的示例代码,展示了如何使用MFC中的AppWizard生成的代码框架连接数据库: ```cpp // 在登录界面的按钮点击事件中实现数据库连接和操作 void CLoginDlg::OnBnClickedLogin() { // 声明数据库连接对象 CDatabase db; // 打开数据库连接 if (db.OpenEx("DSN=YourDataSourceName")) { CString strSQL; // 构造SQL语句 strSQL.Format("SELECT * FROM Users WHERE Username='%s' AND Password='%s'", m_strUsername, m_strPassword); // 执行SQL查询 CRecordset rs(&db); rs.Open(CRecordset::forwardOnly, strSQL); if (!rs.IsEOF()) { // 登录成功 AfxMessageBox("登录成功!"); } else { // 登录失败 AfxMessageBox("用户名或密码错误!"); } // 关闭记录集和数据库连接 rs.Close(); db.Close(); } else { // 连接数据库失败 AfxMessageBox("无法连接数据库!"); } } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值