资源预览内容
第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
第9页 / 共21页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1VC+环境下连接环境下连接 SQL Server 数据库方法指导数据库方法指导一、实验环境1Windows XP 操作系统;2VC+6.0 开发环境;3SQL server 2000 数据库管理系统。二、实验内容和要求利用 VC 开发应用程序,要求能够通过界面完成对数据库中数据的查询、插入、删除以及修改。三、实验原理VC 访问 SQL Server 数据库,常用的方法有两种:通过 ODBC 连接和通过 ADO 连接。下面分别介绍一下。采用 ODBC 方式要求先创建 ODBC 数据源,应用程序通过数据源与数据库连接;并且在创建应用程序时,只能是基于单文档或多文档,而无法直接创建基于对话框的应用程序。采用 ADO 方式无需创建数据源,应用程序可通过 ADO 直接与数据库连接;ADO 方式可以创建基于对话框的应用程序。两种方式都要在应用程序中添加代码以完成相应的初始化功能。四、实验步骤下面通过两个例子分别介绍基于 ODBC 方式和基于 ADO 方式的实验步骤。1 基于 ODBC 方式的实验步骤(1)在 SQL Server2000 中创建数据库 student,该数据库中有学生表 s 用来存放学生信息。s 表的结构如下:属性名类型是否为主键允许空备注snochar(8)是学号snamevarchar(10)否姓名ageint否年龄deptchar(4)否所在系号commentvarchar(8)否评语s 表的创建方法在此不详述。(2)创建 ODBC 数据源“开始”- “设置”- “控制面板” “管理工具” “数据源(ODBC) ” ,打开之后出现如图 1 所示窗口。2图 1 点击“添加”按钮,出现图 2。图 2 选择 SQL Server,点击“完成” ,出现图 3。图 3 名称中填写所创建的数据源的名称,本例中为 student,描述可以不填。因为 SQL Server 的服务器和客户端均安装在本地计算机上,所以服务器为(local) 。如果本地计 算机上只安装了客户端,服务器安装在另外的机器上,服务器为另一台机器的名称。 点击“下一步” ,出现图 4。3图 4 SQL Server 如何验证 ID 的真伪,使用哪种方法要看安装 SQL Server2000 时选择的是 哪种验证方式。如果是 Windows 验证,选择使用网络登录 ID 的 Windows NT 验证;如果 是混合验证模式则要选择下面一种。本例中采用 Windows 验证。进入数据库无需另外的用 户名和密码。 点击“下一步” ,出现图 5。图 5 这里要更改默认的数据库,默认情况下数据源所连接的数据库为 master,这里要改为 student 数据库。 点击“下一步” ,出现图 6。图 6 这里无需修改,点击“完成”出现图 7。4图 7 点击“测试数据源” ,如果测试成功说明数据源已成功创建。 (3)创建 VC 应用程序。 打开 VC+6.0,新建工程,如图 8 所示。选择 MFC AppWizard(exe) ,工程名为 exec1,存放在 D 盘实验文件夹里。图 8 点击“确定” ,在出现的窗口中选择“单文档” ,点击“下一步” ,出现图 9。图 9 这里选择“查看数据库不使用文件支持” ,还要选择数据源,点击“数据源” ,弹出 如图 10 所示窗口。5图 10 选择“student”数据源,点击“OK” ,在弹出的窗口中选择表 dbo.s,点击“OK”返 回图 9 所示的界面。以后的创建步骤中没有需要修改的地方可以直接点击完成。这样 工程 exec1 就创建完成了,并且通过数据源与数据库发生了关联。 创建好的工程可以运行,结果如图 11 所示。图 11 (4)界面设计 在工作区左边的树型结构中,选择 ResourceView,展开 Dialog 节点,双击 IDD_EXEC1_FORM,打开该对话框。在这里添加所需控件。如图 12 所示。图 12 此时运行程序,结果如图 13 所示。6图 13 从界面可以看出程序要完成的功能。完整的程序运行后,界面默认显示表中的第一条 数据,点击工具栏中的“下一记录”可以显示下一条记录;点击“删除”按钮可将当前显 示的数据从库中删除;点击“清除”按钮,将所有编辑框清空;在界面输入学生信息,点 击“添加”按钮可将此学生信息输入至数据库;点击“修改”按钮可修改当前显示的学生 信息。 为界面上的编辑框和按钮添加变量和函数。在界面右键单击,选择“建立类向导” ,弹 出如图 14 所示窗口。图 14 本例中需要为编辑框 IDC_AGE, IDC_COMMENT, IDC_DEPARTMENT, IDC_NAME, IDC_SNO 添加变量。以 IDC_AGE 为例,点击“ADD Variable”弹出如图 15 所示窗口。下一记录7图 15 在下拉框中选择 m_pSet-m_age 为变量名,这里的变量是与数据库表 s 中的字段相对 应的,变量类型也与 s 中的字段类型对应。其它变量的添加方法相同。 为按钮添加函数比较简单,双击按钮即可。添加的函数在 exec1View.cpp 文件中。 (5)代码设计 “清除”按钮所添加的函数为 OnClear(),具体代码如下: /名称:OnClear /功能:清除编辑框中的内容 void CExec1View:OnClear() CWnd* c1;c1= CWnd:GetDlgItem(IDC_SNO);/获得编辑框c1-SetWindowText(“); /将编辑框置空 c1= CWnd:GetDlgItem(IDC_NAME);c1-SetWindowText(“); c1= CWnd:GetDlgItem(IDC_DEPARTMENT);c1-SetWindowText(“); c1= CWnd:GetDlgItem(IDC_AGE);c1-SetWindowText(“); c1= CWnd:GetDlgItem(IDC_COMMENT);c1-SetWindowText(“); “添加”按钮所添加的函数为 OnAdd(),具体代码如下: /名称:OnAdd /功能:插入一条记录 void CExec1View:OnAdd() / TODO: Add your control notification handler code here /判断年龄是否合适 CString strAge; GetDlgItem(IDC_AGE)-GetWindowText(strAge); int nAge = atoi(strAge.GetBuffer(0); if(nAge120) AfxMessageBox(“输入的年龄不符合实际!“); return; /呈增加状态 m_pSet-AddNew();UpdateData(); /更新数据库m_pSet-Update(); /重新获得数据m_pSet-Requery();8UpdateData(FALSE); “删除”按钮所添加的函数为 OnDelete(),具体代码如下: /名称:OnDelete /功能:删除当前记录 void CExec1View:OnDelete() / TODO: Add your control notification handler code here /发出删除命令m_pSet-Delete(); /重新获得记录集m_pSet-Requery();UpdateData(FALSE); “修改”按钮所添加的函数为 OnEdit(),具体代码如下: /名称:OnEdit /功能:修改当前记录 void CExec1View:OnEdit() / TODO: Add your control notification handler code here /判断年龄是否合适 CString strAge; GetDlgItem(IDC_AGE)-GetWindowText(strAge); int nAge = atoi(strAge.GetBuffer(0); if(nAge120) AfxMessageBox(“输入的年龄不符合实际!“); return; /呈编辑状态 m_pSet-Edit(); UpdateData(); /更新数据库 m_pSet-Update(); /重新获得记录集 m_pSet-Requery(); UpdateData(FALSE); (6)运行结果9图 16102 基于 ADO 方式的实验步骤此例中所用数据库与上例中相同; 此例中无需创建数据源。 (1)创建 VC 应用程序 打开 VC+6.0,新建工程。选择 MFC AppWizard(exe) ,工程名为 exec2,存放在 D 盘 实验文件夹里。点击“确定” ,在弹出的窗口中选择“基本对话框” ,以后的步骤没有 需要修改的地方,可以直接点击“完成。 ”这样一个基于基本对话框的工程就创建好了。(2)界面设计 在工作区左边的树型结构中,选择 ResourceView,展开 Dialog 节点,双击 IDD_EXEC2_DIALOG,打开该对话框。在这里添加所需控件。如图 17 所示。图 17 为编辑框和列表框添加变量。在界面右键单击,选择“建立类向导” ,弹出如图 18 所 示窗口。图 18 本例中需要为编辑框 IDC_AGE, IDC_COMMENT, IDC_DEPT, IDC_NAME, 11IDC_SNO,列表框 IDC_LIST 添加变量。以 IDC_AGE 为例,点击“ADD Variable”弹出 如图 19 所示窗口。图 19 这里变量名为 m_age,类型可从下拉框里选。添加变量完成之后类向导如图 20 所示。图 20 为按钮添加函数,双击按钮可为其添加函数,在 exec2Dig.cpp 文件里。(3)与 ADO 相关的代码设计引入 ADO 库文件,使用 ADO 前必须在工程的 StdAfx.h 头文件里用直接引入符号#import 引入 ADO 库文件,以使编译器能正确编译。代码如下所示:/加入 ADO 支持库#import “c:program filescommon filessystemadomsado15.dll“ no_namespace rename (“EOF“, “adoEOF“) 定义 ADO 连接变量指针,在 exec2.h 文件的 class CExec2App : public CwinApp 方法中添加代码如下:/ 定义 ADO 连接变量指针_ConnectionPtrm_pConnection;该指针为整个应用程序共享,所以放在 public 下面。定义 ADO 连接、命令、记录集变量指针,在 exec2Dlg.h 文件的 class CExec2Dlg : public CDialog 方法中添加如下代码:/ 定义 ADO 连接、命令、记录集变量指针12_ConnectionPtrm_pConnection;_CommandPtrm_pCommand;_RecordsetPtr m_pRecordset;该指针为整个应用程序共享,所以放在 public 下面。初始化 OLE/COM 库环境。必须注意的是,ADO 库是一组 COM 动态库,这意味应用程序在调用 ADO 前,必须初始化 OLE/COM 库环境。在 MFC 应用程序里,一个比较好的方法是在应用程序主类的 InitInstance 成员函数里初始化 OLE/COM 库环境。在本例中,在 exec2.cpp 文件的 BOOL CExec2App:InitInstance()成员函数里添加如下代码:/初始化 COM,创建 ADO 连接等操作AfxOleInit()
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号