要操作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;
“连接数据库”按钮的消息响应函数代码如下
- 连接数据库按钮代码//
- TRY
- {
- m_db.OpenEx(_T("DSN=Test;"),CDatabase::noOdbcDialog);//连接到一个名为Test的数据源
- rs.m_pDatabase = &m_db;
- }
- //处理异常消息
- CATCH(CDBException,ex)
- {
- AfxMessageBox(ex->m_strError);
- AfxMessageBox(ex->m_strStateNativeOrigin);
- }
- AND_CATCH(CMemoryException,pEx)
- { pEx->ReportError();
- AfxMessageBox(_T("memory exception"));
- } AND_CATCH(CException,ex)
- {
- TCHAR szError[100];
- ex->GetErrorMessage(szError,100);
- AfxMessageBox(szError);
- }
- END_CATCH
- “查询数据库信息”按钮的消息响应函数代码如下
- 查询数据库信息//
- CString sql = _T("SELECT name FROM spt_values WHERE (number=1)");
- //要执行的SQL语句
- CString psd;
- //存放查询结果
- TRY
- {
- rs.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
- //打开查询记录
- rs.GetFieldValue(_T("name"),psd);
- //得到数据
- }
- CATCH(CDBException,ex)
- {
- AfxMessageBox(ex->m_strError);
- AfxMessageBox(ex->m_strStateNativeOrigin);
- }
- AND_CATCH(CMemoryException,pEx)
- {
- pEx->ReportError();
- AfxMessageBox(_T("memory exception"));
- }
- END_CATCH
- 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如何连接数据库的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sjkxydsj/1466.html