要操作SQL数据库要经过以下几个步骤:

建立数据库

配置数据源

数据库的连接

最后就可以对数据库里面的数据进行查改删了

 

SQL Server Management Studio,根据自己的需要建立数据库

【2】配置数据源

数据库设计完成后,我们并不能直接的去访问它,必须通过配置数据源让应用程序和数据库之间建立连接,直白点就是为数据库创建一个接口,让程序通过这个窗口去操作数据库。

1.打开控制面板-》管理工具-》数据源(ODBC)


mfc2019连接mysql数据库 mfc如何连接数据库_数据库

点击添加

 


mfc2019连接mysql数据库 mfc如何连接数据库_数据库_02

选择数据源驱动

 


mfc2019连接mysql数据库 mfc如何连接数据库_数据源_03

输入数据源名称和选择SQL服务器

 


mfc2019连接mysql数据库 mfc如何连接数据库_mfc2019连接mysql数据库_04

登录验证

 


mfc2019连接mysql数据库 mfc如何连接数据库_SQL_05

选择数据库-》要操作的是哪个数据库就选择哪个数据库,这里我拿master数据库做为实例

 


mfc2019连接mysql数据库 mfc如何连接数据库_mfc2019连接mysql数据库_06

设置完成

【3】数据库的连接

         到了MFC的阶段了,首先建立一个MFC工程,放置两个按钮,对两个按钮实现消息响应,一个名称为“连接数据库”,一个为“查询数据库信息”。

afxdb.h头文件。

CDatabase m_db; CRecordset rs;

“连接数据库”按钮的消息响应函数代码如下




1. 连接数据库按钮代码//  
2.  TRY   
3.  {      
4. "DSN=Test;"),CDatabase::noOdbcDialog);//连接到一个名为Test的数据源  
5.   rs.m_pDatabase = &m_db;   
6.  }  
7. //处理异常消息  
8.  CATCH(CDBException,ex)  
9.  {      
10.   AfxMessageBox(ex->m_strError);  
11.   AfxMessageBox(ex->m_strStateNativeOrigin);   
12.  }   
13.  AND_CATCH(CMemoryException,pEx)   
14.  {    pEx->ReportError();   
15. "memory exception"));   
16.  } AND_CATCH(CException,ex)   
17.  {      
18. TCHAR szError[100];      
19.   ex->GetErrorMessage(szError,100);      
20.   AfxMessageBox(szError);   
21.  }   
22.  END_CATCH  
23.    
24.    
25. “查询数据库信息”按钮的消息响应函数代码如下  
26. 查询数据库信息//  
27. CString sql = _T("SELECT name FROM spt_values WHERE (number=1)");      
28. //要执行的SQL语句         
29.  CString psd;      
30. //存放查询结果  
31.  TRY        
32.  {       
33.  rs.Open(AFX_DB_USE_DEFAULT_TYPE,sql);  
34. //打开查询记录       
35. "name"),psd);         
36. //得到数据                    
37.  }       
38.  CATCH(CDBException,ex)        
39.  {            
40.   AfxMessageBox(ex->m_strError);   
41.   AfxMessageBox(ex->m_strStateNativeOrigin);        
42.  }           
43.  AND_CATCH(CMemoryException,pEx)   
44.  {            
45.   pEx->ReportError();            
46. "memory exception"));     
47.  }  
48.  END_CATCH  
49.  MessageBox(psd);


 

先点击“连接数据库按钮代码”然后点击“查询数据库信息”,可以看到弹出你所查询到信息,关于SQL语句方面的话大家可以看SQL基础,还有其他的删除增加表等操作那就比较简单了,大家可以自己设计一下。

这里为了节省时间,只是给出了实现方法。

具体的思路大家可以自己设计,比如把连接数据库操作放到 对话框初始化菜单,然后设置查询对话框跟复选框来进行功能选择,把获取到的信息放到树里面或者LIST等控件里面。

MFC中数据库的操作

1,看你使用什么数据库,使用SQL Server你要先安装相应的数据库管理软件,如SQL Server 2000或2003.使用access就不用安装了。另外数据库要先建好。

 

2,配置好数据源,在控制面板》管理工具》ODBC数据源里配置。

具体的步骤你上网查下,都有。

 

3,数据库在MFC中主要靠两个类来操作CDatabase和CRecordSet。

CDatabase用来执行非select语句,CRecordSet用来执行select语句,保存返回的结果数据,你可以把它看成一张二维表,存有很多条数据,不熟悉SQL的话你得看下SQL语句。

具体使用时先实例化CDatabase:

CDatabase m_db;

然后 CRecordSet *m_set = new CRecordSet(&m_db);

3.1 打开数据库

try
 {
m_db.open("文件全路径",FALSE, FALSE, "ODBC", FALSE);
 }
 catch(CDBException e)
 {
 // 编写处理异常代码
 }

3.2 查询数据库

if (m_set->IsOpen())
 m_set->Close();
 try
 {
CString sql = select语句;如select * from information。information为表名。
m_set->Open(CRecordset::dynaset,sql); // dynaset为查询方式,你照写就行,具体的到msdn上看看。
 }
 catch(CDBException e)
 {
MessageBox("表中没有数据 !");
return;
 }
 catch(CMemoryException e)
 {
MessageBox("表中没有数据 !");
return;
 }
 // 获取数据字段, 字段就是像"姓名", "年龄"这类信息
 CODBCFieldInfo fi;
 short nfield = m_set->GetODBCFieldCount();
 for (int i=0; i<nfield; i++)
 {
 m_set->GetODBCFieldInfo(i, fi);
 fi.m_strName成员包含字段名称,比如"姓名";
 ]
 //获取字段对应的信息
 CString strValue;
 m_set->MoveFirst();
 while(0 == m_set->IsEOF())
 {
// 遍历每一条数据
for (int i=0; i<nfield; i++)
{
m_set->GetFieldValue(i, strValue); // 注意这里strValue前不加&符号,传入的是CString类的引用。
// 获得字段对应的数据后自行处理,可以显示出来等等。
}
m_set->MoveNext();
 }

3.3 执行SQL语句

try
 {
CString sql = SQL语句;如delete from information。
m_db.ExecuteSQL(sql);
 }
 catch(CDBException e)
 {
MessageBox("Executation of the SQL Failed !","Error",MB_ICONERROR);
return;
 }