《软件技术》专业剖析报告软件教研室李萍2006年5月可视化程序设计-C#第5章C#数据库应用程序开发环境讲课教师:周志德本章内容:(1)C#数据库应用程序的开发环境的构成(2)服务器资源管理器(3)类型化数据集(4)创建一个简单的数据库应用程序(5)ADO.NET对象简介5.1数据库应用程序的开发环境图5.1C#数据库应用程序开发环境C#数据库应用程序ADO.NET对象服务器资源管理器类型化数据集计算机网络(TCP/IP)远程数据库Oracle、SQLServer本地数据库dBASEAccessParadox桌面数据库1.C#数据库应用程序开发环境用户2.访问数据库的方式(1)用户可通过服务器资源管理器对本地数据库(如,dBase、Access、Paradox)进行建库、建表、建索引、查询、录入、删除、修改等操作。(2)数据库应用程序可通过ADO.NET对象、类型化数据集、计算机网络对本地或远程数据库(如SQLServer、Oracle等)进行建库、建表、建索引、查询、录入、删除、修改等操作。5.1数据库应用程序的开发环境1.作用(1)打开Access等类型数据库与数据表,录入、修改与删除数据表中记录。(2)用服务器资源管理器的查询生成器可查询数据表中的记录。2.启动服务器资源管理器启动:菜单|视图|服务器资源管理器5.2服务器资源管理器3.服务器资源管理器的组成服务器资源管理器由服务器、数据连接两部分组成,如图5.2所示。(1)服务器:由服务、管理类、管理事件、事件日志、消息队列、性能计数等组成。(2)数据连接:可创建与多个数据库的数据连接,在每个数据连接中可打开数据库中的数据表、视图、存储过程与函数。可对数据表中记录进行添加、删除与修改操作。5.2服务器资源管理器图5.2服务器资源管理器(连接Student_Sys.mdb数据库)4.建立数据连接建立数据连接步骤如下:(1)启动添加连接对话框在服务器资源管理器中,右击“数据连接”|添加连接,出现添加连接对话框。(2)选择数据源与驱动程序单击“更改”按钮|选择数据源:MicrosoftAccess数据库文件(OLEDB)|确定,如图5.3所示。5.2服务器资源管理器图5.3选择数据源驱动程序5.2服务器资源管理器(3)选择数据库单击“浏览”按钮|选择数据库,如:D:\C#\Data\Student_Sys.mdb(4)测试连接单击“测试连接”按钮|确定,如图5.4所示。则在服务器资源管理器的数据连接节点下出现数据连接项:ACCESS.D:\C#\data\Student_Sys.mdb如图5.2所示。5.2服务器资源管理器图5.4连接数据库Student_Sys.mdb5.2服务器资源管理器5.编辑数据表(1)打开数据库单击数据连接项D:\C#\Data\Student_Sys.mdb前的“+”,打开“数据连接”对应数据库Student_Sys.mdb中的表、视图、存储过程、函数项。(2)打开数据表单击“表”前的“+”,打开数据库Student_Sys.mdb中所有数据表,如系部编码表tblDept的等,如图5.2所示。5.2服务器资源管理器(3)编辑数据表右击数据表(如,tblDept)|显示表数据,则出现系部编码表tblDept中所有记录,可在表中添加、修改、删除记录,如图5.2所示。添加:记录只能添加到表的最后一条记录,如在表尾添加新记录:70,艺术系,张晶修改:可直接在记录行内修改字段内容,如将“其它部门”改为“外语系”。删除:右击要删除行|删除|Yes,则删除当前记录。5.2服务器资源管理器6.查询设计器(1)作用:用可视化方法创建数据库查询SQL语句,执行SQL语句获得查询结果。(2)组成:查询设计器界面由关系图窗格、条件窗格、SQL窗格、结果窗格4个窗格组成,如图5.5所示。(3)创建查询SQL语句①启动查询设计器右击数据连接项(D:\Access\C#\Data\Student_Sys.mdb)|新建查询,出现添加数据表对话框。5.2服务器资源管理器图5.5查询设计器4个窗格界面②添加数据表在“添加表”对话框中选择要查询的数据表,如添加:班级编码表:tblClass专业编码表:tblMajor毕业标志表:tblStatus系部编码表:tblDept如图5.6所示。5.2服务器资源管理器图5.6添加表③建立数据表的等值连接Class_MajorID=Major_ID//专业编码字段等值连接Class_Status=Status_ID//毕业标志码字段等值连接Class_DeptID=Dept_ID//系部编码字段等值连接5.2服务器资源管理器将tblClass表中的Class_MajorID字段拖放到tblMajor表中Major_ID字段,两字段间出现连接线,表示班级编码表tblClass与专业编码表tblMajor通过专业编码字段作等值连接,如图5.7所示。用同样方法:将tblClass表中的Class_Status字段与tblStatus表中Status_ID字段作等值连接。将tblClass表中的Class_DeptID字段与tblDept表中Dept_ID字段作等值连接。5.2服务器资源管理器图5.7数据表的等值连接④选择查询字段在数据表tblClass中,将显示字段Class_ID复选框打钩,则显示字段Class_ID被自动添加到条件窗格,如图5.8所示。按图5.5界面要求,将显示字段:Class_ID,Class_Name,Class_Enroll,Major_Name,Class_Length,Class_Num,Class_Head,Status_Name,Dept_Name添加条件窗格中去。5.2服务器资源管理器图5.8添加数据表的显示字段与查询条件⑤设置查询条件在条件窗格的入学年份字段Class_Enroll的筛选器中,输入查询条件:=‘2004‘,如图5.8所示。⑥创建查询SQL语句在②添加数据表到⑤设置查询条件的设置过程中,查询设计器自动创建相应的SQL语句,如图5.8中SQL窗格所示。5.2服务器资源管理器⑦执行SQL语句用鼠标右键单击查询设计器|执行SQL,或单击工具栏中的执行SQL按钮,查询设计器将执行SQL窗格中的Select语句,查询结果显示在结果窗格中。如图5.5所示。5.2服务器资源管理器7.关闭数据连接当数据库使用完毕后,应关闭对应的数据连接项。关闭数据连接方法如下:右击数据连接项(D:\Access\C#\Data\Student_Sys.mdb)|关闭连接,则数据库被关闭,不能查询使用。关闭连接后可修改数据连接。8.修改连接先关闭数据连接库|右击数据连接项|修改连接,出现修改连接对话框,右按需修改连接内容。5.2服务器资源管理器9.数据连接重命名数据连接项默认名较长,如:D:\Access\C#\Data\Student_Sys.mdb,可重命名为Student_Sys,方法如下:右击数据连接项(D:\Access\C#\Data\Student_Sys.mdb)|重命名:输入Student_Sys即可。10.删除连接关闭连接|右击数据连接项|删除连接。5.2服务器资源管理器图1【例5-2】分组统计tblStudent中各班学生人数,显示班级名称与各班人数,结果按人数降序输出,如图5.9所示。SELECTClass_Name,Count(*)FromtblStudent,tblClassWhereStu_Class=Class_IDGroupByClass_NameOrderByCount(*)Desc5.2服务器资源管理器图5.9分组统计示例5.3类型化数据集1.类型化数据集的概念(1)定义类型化数据集:是用DataSet类定义的数据集对象。(2)作用:用于向数据集添加数据表,向控件提供数据源。2.创建类型化数据集(1)创建解决方案与项目新建解决方案ex5_3.sln,创建一个Windows应用程序项目ex5_3项目。(2)添加数据连接启动服务器资源管理,添加Student_Sys.mdb数据连接。(3)添加数据集右击项目(ex5_3)|添加|类|数据集|名称:DataSet1.xsd,如图5.10所示|添加,出现图5.9所示界面。5.3类型化数据集5.3类型化数据集图5.10添加数据集图5.11数据集界面(4)添加数据集对象从数据连接Student_Sys中,将:班级编码表:tblClass专业编码表:tblMajor毕业标志编码表:tblStatus系部编码表:tblDept拖放到数据集DataSet1中,如图5.10所示。在数据库应用程序中可直接使用数据集对象中的表与记录。5.3类型化数据集图5.10向数据集中添加数据表1.设置窗体属性(1)Name:frm_DBAPL(2)Text:创建简单数据库应用程序示例2.添加数据表控件工具箱|数据|将DataGridView1控件添加到窗体中,并复制三个数据表控件。如图5.11所示。5.4创建简单数据库应用程序图5.11为数据表控件选择数据源3.设置数据表控件属性连接数据表(1)为DataGridView1控件选择数据源:tblClass单击DataGridView1控件右上角的小三角按钮,选择数据源:在数据集DataSet1中选择班级编码表tblClass。(2)用类似方法为DataGridView2~4控件选择数据源:tblMajor、tblStatus、tblDept分别显示专业编码表、毕业标志编码表、系部编码表4.运行程序,窗体界面显示4张数据表的记录内容。5.4创建简单数据库应用程序图5.12显示4张数据表记录内容5.5ADO.NET对象在上述数据库应用程序的建立过程中,系统自动创建了如下ADO.NET对象:(1)数据集对象:DataSet1(2)适配器对象:tblClassTableAdaptertblDeptTableAdapter、tblMajorTableAdaptertblStatusTableAdapter(3)数据源绑定对象:tblClassBindingSourcetblDeptBindingSource、tblMajorBindingSource、tblStatusBindingSource如图5.12所示,相关概念将在第6章中介绍。图5.12显示4张数据表记录内容C#数据库应用程序ADO.NET对象服务器资源管理器类型化数据集计算机网络(TCP/IP)远程数据库Oracle、SQLServer本地数据库dBASEAccessParadox桌面数据库1.C#数据库应用程序开发环境课程小结2、服务器资源管理器:可连接数据库,打开、编辑数据表课程小结3、查询设计器:通过可视化方式自动生成SQL语句,查询记录课程小结课程小结3、类型化数据集:向应用程序提供数据表4、数据库应用程序:用控件显示数据表中记录课程小结课程小结5、ADO.NET对象(1)数据集对象:DataSet1(2)适配器对象:tblClassTableAdaptertblDeptTableAdapter、tblMajorTableAdaptertblStatusTableAdapter(3)数据源绑定对象:tblClassBindingSourcetblDeptBindingSource、tblMajorBindingSource、tblStatusBindingSource