当前位置:网站首页 > 数据科学与大数据 > 正文

mfc sql_java如何连接数据库

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

1.建立数据库

2.配置数据源

3.数据库的连接

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

 

【1】对于建立SQL数据库的话,可以通过SQL Server Management Studio,根据自己的需要建立数据库

【2】配置数据源

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

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

点击添加

 

选择数据源驱动

 

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

 

登录验证

 

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

 

设置完成

【3】数据库的连接

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

因为要使用到CDatabase类所以需要在stdafx.h中包含afxdb.h头文件。

在Dlg类中定义两个变量 CDatabase m_db; CRecordset rs;

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

[cpp]  view plain copy
  1. 连接数据库按钮代码//  
  2.  TRY   
  3.  {      
  4.   m_db.OpenEx(_T("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.  AfxMessageBox(_T("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.  rs.GetFieldValue(_T("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.   AfxMessageBox(_T("memory exception"));     
  47.  }  
  48.  END_CATCH  
  49.  MessageBox(psd);  
 

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

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

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

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;

}


到此这篇mfc sql_java如何连接数据库的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 附加数据库时出错怎么办_excel使用连接符怎么不出来2024-11-19 11:18:06
  • sqlserver数据库连接超时_sql执行先后顺序口诀2024-11-19 11:18:06
  • sql数据查询怎么操作_sql常用函数大全2024-11-19 11:18:06
  • sql做数据分析_数据分析处理软件2024-11-19 11:18:06
  • 数据分析 sql_SQL数据库下载2024-11-19 11:18:06
  • java 连接sqlserver数据库实例_jdbc连接sqlserver2024-11-19 11:18:06
  • wincc读写oracle数据库方法_wincc软件2024-11-19 11:18:06
  • matlab做dea分析_dea数据包络分析法2024-11-19 11:18:06
  • 面向对象程序将数据_面向对象和面向过程的区别2024-11-19 11:18:06
  • cobol cancel_cobol数据文件数据的数量2024-11-19 11:18:06
  • 全屏图片