版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VS2010连接数据库(access和sql 2008)现在很多人开始用VS2010的C+了,以前大家都是从VC6.0开始使用,对6.0比较熟悉,网上很多关于连接数据库的方法都是针对VC6.0的,很多人用2010用了一段时间之后不随手就放弃了,继续使用VC6.0.作者作为一名VS2010版本开始学习使用的人在数据库连接的时候也遇到很多问题,在这里和大家分享如下:首先是用ACCESS 方式连接数据库:以前VC6.0怎么连接相信大家都能够百度得到了,他是通过首先打开控制面板-管理工具-数据源(ODBC)就到了图一界面:图一然后点击右边的添加按钮:很多书里面都叫添加时候选第二项,也就是图二里面所以深
2、色背景那项:图二Vc6.0的操作就是这样选择。但在VS2010里面就不对。我用的是VS2010然后用ACCESS2007做数据库保留后缀名:accdb如图三图三选择这一项在VS2010里面就不会出错了我在这里添加了一个叫:liyixu的access数据库这就配置好了数据源接下来,讲VS2010里面怎样连接这个数据库:在VC6.0里面是通过添加类的方法来添加数据库里面的具体某一个表。而在VS2010里面也差不多。但是当我们按照VC6.0添加正常类的时候发现,他没有基类CRecordset类可以选择:图四比如:如果选择图四中的MFC类图五他里面没有CRecordset基类可供选择,也就无从选择数据
3、源和表。那么VS2010里面其实是有专门的ODBC使用者设置的。选择:图六图六中的MFC ODBC使用者选项,不需要输入名称位置,点击添加按钮:图七进入MFC ODBC使用者向导:点击数据源按钮,进入选择数据源对话框,把文件数据源视图切换到系统数据源视图:图八选择之前在数据源中定义的liyixu 用户数据源点击确定出现登陆界面:图九这里我登录名和密码是在添加数据源时在高级选项中设置的,如果你没有设置,当然就没有,直接单击确定按钮就可以连接了图十出现图示界面 我的数据库里面只有一个表会员信息,所以直接选择他,然后单击确定回到向导界面,单击完成,完成连接在这里你可以自定义自己的类的名称:图 十一我
4、在这里就直接以(huiyuaninfo)会员信息为类名了。在图十一中我勾选了绑定所有列 然后就会被卡住程序崩溃,然后不勾选就没有这种情况,如果在前面图九中你设置了登陆名和密码,程序也会发出警告,所有密码出现在代码中,编译也会不成功,这时候把#error那一行注释掉就行了。这样就能以ODBC方式连接上ACCESS数据库很清楚吧下面讲一讲怎样连接SQL 2008 (这个是重点):很多人连接SQL失败是数据库配置的问题,权限没有,所以访问被拒绝。这个要从SQL 2008的安装说起,由于是一时兴起写这篇文章,所以我就不把自己的数据库卸载了重装了,其实就一个地方。在SQL 2008安装过程中,很多教材都
5、叫选择windows登陆模式,默认实例。而不管是这里讲的ODBC模式连接SQL 还是ADO方式这种比较方便的方式连接都需要登录名和密码。你在单击上做练习的话 当然是不需要什么登录名的了,window验证,开机就可以用自然很方便,但是其他软件要访问它,必然要给他权限和接口,所以选择混合模式,设置SQL登录方式中用户名sa的密码。注意:密码一定要复杂不然还通不过。这是其一。二、打开SQL Server 2008 配置工具-SQL Server 配置管理器。首先确保sql server服务开启,然后图 十二我安装的学习版哈,见笑了,设置SQL Server网络配置中SQL EXPRESS和MSSQL
6、SERVER中的TCP/IP和Named Pipes协议的状态为启用,默认是不启用的。设置完成后重启服务就可以了。然后配置ODBC数据源:以一个简单实例来说明:学籍管理系统。 打开SQL Server management Studio以SQL server方式连接数据库:图 十三新建数据库 member。在member数据库里面创建两个表:user和score。我之后会以ODBC方式连接score表设计score表:图 十四有上图所示的一些列。然后再自己先编写一些内容:比如:图 十五这是我随意编写的一些信息然后开始同前面设置ACCESS数据源一样的操作:这里添加选SQL Server选项:图
7、 十六图 十七 服务器选自己的电脑,因为单机练习嘛,最简单了,点击完成。出现图十八所示界面:图 十八你可以单击测试数据源,测试一下,如果照前面的设置进行了的话,连接就会成功,出现如图十九的对话框:图 十九至此,ODBC的sql数据源设置好了:图 二十然后打开VS2010新建项目,创建MFC对话框程序。在VS2010中创建对话框向导没有连接数据源的选项,单文档和多文档是有的。那么先不管,先来设计学籍管理系统的对话框界面如下:图 二十一这个界面,相信学过MFC的同学都会做了,然后对相应的变量进行设计。然后创建数据库连接,还是添加类里面选择ODBC数据库使用者图 二十二出现数据源选择界面,单击数据源
8、按钮,出现数据源菜单,切换到系统数据源视口,然后选择之前设置的huiyuaninfo sql 数据库。图 二十三单击确定,出现登陆界面:图 二十四这时候就必须输入sa用户和密码,sa用户的创建在前面说了,要在数据库安装的时候设置,单击确定选择score表:图 二十五至此,数据库连接成功然后创建了一个Cscore类,然后我们来看看他都有哪些内容:#pragma once/ 代码?生成在 2013年1月?22日?, 10:26class Cscore : public CRecordsetpublic:Cscore(CDatabase* pDatabase = NULL);DECLARE_DYNA
9、MIC(Cscore)CStringWm_stuid;CStringWm_stuname;CStringWm_stuclass;longm_usualscore;longm_testscore;longm_totalscore;public:virtual CString GetDefaultConnect();/ 默?认?连?接字?符?串?virtual CString GetDefaultSQL(); / 记?录?集的?默?认? SQLvirtual void DoFieldExchange(CFieldExchange* pFX);/ RFX 支持?/ 实现?#ifdef _DEBUGv
10、irtual void AssertValid() const;virtual void Dump(CDumpContext& dc) const;#endif;VS2010的注释粘贴到word里面会乱码,我也不知道怎么回事,不过这不影响程序的理解,可以看到,这个类定义了六个变量和两个虚函数再看他的源程序:/ score.h : Cscore 类的?实现?/ Cscore 实现?/ 代码?生成在 2013年1月?22日?, 10:26#include stdafx.h#include score.hIMPLEMENT_DYNAMIC(Cscore, CRecordset)Cscore:Csco
11、re(CDatabase* pdb): CRecordset(pdb)m_stuid = L;m_stuname = L;m_stuclass = L;m_usualscore = 0;m_testscore = 0;m_totalscore = 0;m_nFields = 6;m_nDefaultType = dynaset;/#error 安2全?问题a:o连?接字?符?串?可能包含?密码?。/ 此?连?接字?符?串?中D可能包含?明文?密码?和/或其?他?重?要a/ 信?息。请?在查看完此?连?接字?符?串?并找到?所有D与?安2全?/ 有D关?的?问题a后移?除y #error。可能需
12、要a将?此?密码?存?/ 储为a其?他?格?式?或使1用?其?他?的?用?户身份Y验证。CString Cscore:GetDefaultConnect()return _T(DSN=xuejiguanli;Trusted_Connection=Yes;APP=Microsoftx00ae Visual Studiox00ae 2010;WSID=LIYI;DATABASE=member;Network=DBMSSOCN);CString Cscore:GetDefaultSQL()return _T(dbo.score);void Cscore:DoFieldExchange(CFieldE
13、xchange* pFX)pFX-SetFieldType(CFieldExchange:outputColumn);/ RFX_Text() 和 RFX_Int() 这a类宏依赖的?是?/ 成员变?量?的?类型,?而?不?是?数y据Y库a字?段?的?类型。/ ODBC 尝试?自?动将?列D值转a换?为a所请?求的?类型RFX_Text(pFX, _T(stuid), m_stuid);RFX_Text(pFX, _T(stuname), m_stuname);RFX_Text(pFX, _T(stuclass), m_stuclass);RFX_Long(pFX, _T(usualscore
14、), m_usualscore);RFX_Long(pFX, _T(testscore), m_testscore);RFX_Long(pFX, _T(totalscore), m_totalscore);/ Cscore 诊?断?#ifdef _DEBUGvoid Cscore:AssertValid() constCRecordset:AssertValid();void Cscore:Dump(CDumpContext& dc) constCRecordset:Dump(dc);#endif /_DEBUG他把表中的六列和六个变量建立了关系。然后我们就可以通过这六个变量来对数据库进行操作
15、了。下面给出对话框初始化函数里面的代码:BOOL CxuejiDlg:OnInitDialog()CDialogEx:OnInitDialog();/打开a数y据Y集,?建立数y据Y集和对?话框变?量?之?间?的?联a系Cscore m_set;m_set.Open();m_set.MoveFirst();m_stuid=m_set.m_stuid;m_stuname=m_set.m_stuname;m_testscore=m_set.m_testscore;m_usualscore=m_set.m_usualscore;m_totalscore=m_set.m_totalscore;Upda
16、teData(false);/设置?列D表框的?风?格?DWORD dwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE;m_list.SetExtendedStyle(dwExStyle);m_list.SetTextColor(RGB(255,0,0);m_list.SetBkColor(RGB(240,247,233);/初?始?化列D表 插?入?6列D,?设置?宽度m_list.InsertColumn(0,L学号?,LVCFMT_CENTER,65,0
17、);m_list.InsertColumn(1,L姓?名?,LVCFMT_CENTER,65,0);m_list.InsertColumn(2,L班级?,LVCFMT_CENTER,65,0);m_list.InsertColumn(3,L平?时成绩,LVCFMT_CENTER,65,0);m_list.InsertColumn(4,L期末?成绩,LVCFMT_CENTER,65,0);m_list.InsertColumn(5,L总评成绩,LVCFMT_CENTER,65,0);CString strsql;strsql.Format(Lselect * from score order b
18、y stuid);ListAll(strsql);首先建立了一个列表框,然后要通过最后一行的ListAll函数来把数据库里面的所有信息显示到列表控件里面来,初始化函数主要写了列表控件的初始化信息。列表控件的使用可以查询MSDN有详细的说明。最后来看看ListAll函数是怎样实现对数据库的显示的:void CxuejiDlg:ListAll(CString str)m_list.DeleteAllItems();Cscore m_score;/tryif(m_score.IsOpen()m_score.Close();if(!m_score.Open(CRecordset:snapshot,str)MessageBox(L打开a数y据Y库a失败!?,L数y据Y库a错误,MB_OK);return;catch(CDBException *e)e-ReportError();/int nindex=0;m_score.MoveFirst();CString uscore,tscore,fscore;while(!m_score.IsEOF()LV_ITEM litem;litem.mask=LVIF_TEXT;litem.iItem=nindex;litem.iSubItem=0;litem.pszText=L;/在最?后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淮阴师范学院《大学体育》2022-2023学年第一学期期末试卷
- 淮阴工学院《药物分析》2022-2023学年第一学期期末试卷
- DB5116T19-2024电梯维护保养单位质量与信用评价规范
- DB3305-T 317-2024农村残疾人就业创业帮扶基地建设与服务规范
- DB 4601-T 11-2024集体用餐配送单位布局设置与加工配送管理规范
- 小学班主任的工作计划
- 建筑物拆除工程对土地资源的影响分析考核试卷
- 畜牧业的税收政策与财务管理考核试卷
- 区块链在医疗健康中的数据共享与隐私保护考核试卷
- 水运运输项目投资分析考核试卷
- 国际业务基础知识培训
- 急诊科中的老年病急症救治
- 亚马逊账户安全培训内容
- 生活区消防安全培训课件
- 关爱职工眼健康知识讲座
- 诺如病毒护理查房
- 医疗设备移机服务投标方案
- 塑料杯模具设计
- 四川省凉山州西昌市2022-2023学年高一上学期期中考试数学试题
- 橡塑绝热保冷材料施工方案
- 学前教育学 第七章 幼儿园教学活动
评论
0/150
提交评论