收藏 分享(赏)

第十章+C#数据库操作.ppt

上传人:dwy79026 文档编号:5163407 上传时间:2019-02-11 格式:PPT 页数:58 大小:865KB
下载 相关 举报
第十章+C#数据库操作.ppt_第1页
第1页 / 共58页
第十章+C#数据库操作.ppt_第2页
第2页 / 共58页
第十章+C#数据库操作.ppt_第3页
第3页 / 共58页
第十章+C#数据库操作.ppt_第4页
第4页 / 共58页
第十章+C#数据库操作.ppt_第5页
第5页 / 共58页
点击查看更多>>
资源描述

1、第10章 C#的数据库操作,内容提要:数据库的概念Access数据库、SQL常用语句ADO.NET编程目的要求:理解数据库的概念掌握Access数据库的用法能够进行ADO.NET编程重点难点:ADO.NET编程,10.1 Access 数据库“数据库管理系统DBMS”(database management system)则是用来操作与管理数据库的软件,Microsoft Access、Microsoft SQL Server、Oracle都是属于DBMS软件,通过这些软件,用户可以对数据进行定义、创建与运算,其中“定义”(define)是指明数据的类型、结构及其相关限制,“创建”(const

2、ruct)是输入并保存数据,而“运算”(manipulate)则包括查询、更新、插入、删除、产生报表等操作。,10.1.1 建立Access数据库表,1. 打开空白数据库(1) 选按“开始”|“程序”|“Microsoft Access”,启动Access,然后单击菜单“文件”|“新建”,屏幕上会出现如图所示的“新建文件”面板,在该面板中点取“空数据库”。,打开空白数据库,(2)出现“文件新建数据库”对话框,如图所示,指定新数据库的保存位置、文件名,然后按“创建”。在此,将新数据库存放在“我的文档”内,文件名称为“Friend”,文件夹型为“Microsoft Office Access数据库

3、”。,保存空白数据库,定义各个表的字段名称与数据类型(1)出现如图所示的窗口,在“使用设计器创建表”上双击。,使用设计器创建表,(2)在“字段名称”字段输入表第一个字段名称(在此为“编号”),然后在“数据类型”字段的下拉式列表框中选取这个字段的数据类型(在此为“数字”),再于“说明”字段输入这个字段的描述文字,如图所示。,设置字段,(3)依照图所示输入八个字段、数据类型及说明。,具体设置字段,(4)接下来要指定主键,选择“编号”字段,按一下工具栏的“主键”按钮,或单击鼠标右键,在弹出的快捷菜单中选择“主键”,随即会看到“编号”字段旁多了一个钥匙符号,表示“编号”字段为主键,然后点取“关闭”按钮

4、,此时,Access会询问是否要保存表,点击“是”。,设置主键,(5)在“另存为”对话框的“表名称”字段输入表的名称(在此为“俱乐部”),然后单击“确定”按钮,如图所示。,保存表,(6)“数据库”窗口中增加了如图的“俱乐部”表。,“俱乐部”表,(1)在“俱乐部”表按一下鼠标右键,然后选择“打开”。 (2)依照图10-9所示输入20条记录,输入完毕之后,单击 “关闭”按钮,Access会自动保存。,3. 输入表的数据,“俱乐部”表的记录,10.1.2 Access数据库操作1. 创建新数据库项目利用Visual C#的编程向导创建一个新项目,设计名为: Friend。如图所示。,创建新项目Fri

5、end,2. 创建数据库连接对数据库的操作首先要和数据库建立一个连接,与数据库建立连接可以通过系统提供的控件实现,具体步骤如下:(1)打开工具箱中的“数据”卷展栏。如图所示。,工具箱中的“数据”卷展栏,(2)选择“DataGridView”组件按钮,并将其拖动到应用程序窗口上,将弹出“DataGridView任务”菜 单,如图所示。这个向导将指导编程人员一步步地完成对数据库的连接操作。,“DataGridView任务”菜单,(3)展开“DataGridView任务”菜单的“选择数据源”列表,选择“添加项目数据源”,如果以前已建好数据库的连接,可以直接单击“选择数据源”列表中已建好的连接的选项。

6、如果还没有建好的连接,可以通过单击“添加项目数据源”按钮建立新的连 接。,(4)在弹出的“数据源配置向导”对话框中选择数据源类型“数据库”,单击“下一步”按钮。,(5)在“数据源配置向导”对话框中单击“新建连接”,如图所示。,“数据源配置向导”对话框中选择数据连接,(6)弹出“添加连接”对话框,见图所示,首先查看数据源类型是否需要更改,若要更改,单击“更改”按钮。弹出“更改数据源”对话框,见图所示,在 其对话框中选择你所需要的数据源,然后单击“确定”按钮。,“添加连接”对话框,“更改数据源”对话框,(7)在“添加连接”对话框中,用户既可以通过在“数据库名称”文本输入框中直接输入所用数据库文件的

7、绝对路径,也可以通过单击“ 数据库名称 ”文本输入框右边的“ 浏览 ”按钮找到所要访问的数据库绝对路径从而完成数据库访问路径设置。,(8)单击“下一步”,接着在“数据源配置向导”对话框中选择数据库对象,(9)单击“完成”按钮。返回到“DataGridView任务”菜 单,可以对其它内容进行设置,如“编辑列”、“添加列”等。(10)在应用程序窗口显示如图所示。,应用程序窗口显示结果,(11)调试程序,运行结果如图所示。,数据库信息显示,10.1.3 SQL语言简介及常用的SQL命令SQL(Structured Query Lanuage,结构化查询语言)是现代关系数据库的标准语言。现在的大多数数

8、据库系统都采用SQL语言作为共同的数据存取语言和标准接口,使不同数据库系统之间的互操作成为了可能。如果要使用SQL编写程序,则需要另一语言或平台来实现所有实际信息的显示。SQL语言的功能极为强大,语言十分简捷,现在介绍常用的4个命令。,1.SELECT命令(查询命令) 格式:SELECT |* FROM 功能:对数据库中的数据进行查询。,例如:SELECT * FROM STU1,语句:SELECT 学号,姓名,数学 FROM STU1,语句:SELECT 学号,数学+5 FROM STU1,WHERE关键字 在WHERE子句中,用条件表达式来确定要显示的记录。 WHERE ,例如:SELEC

9、T 学号,姓名 FROM STU1 WHERE 数学=90,SELECT 学号,姓名 FROM STU1 WHERE 数学 =90 OR 平均分=85,BETWEEN关键字 在WHERE子句中可以使用BETWEEN来指定可接受值的范围。 例如:要显示学生档案表STU2中数学成绩在91到92的学生情况。 SELECT * FROM STU2 WHERE 数学 BETWEEN (91) AND(92),LIKE关键字,格式:WHERE LIKE 说明:字符串常量中的字符可以包含如下两个特殊符号:% 表示任意长度的字符串;_ 表示任意一个字符 例: 查询所有姓 “张”的学生的学号和姓名。SELECT

10、 学号,姓名 FROM 学生表 WHERE 姓名 LIKE 张%例: 查询第二个汉字是“红”的学生的学号和姓名SELECT 学号,姓名 FROM 学生表 WHERE 姓名 LIKE _红%,IN关键字在WHERE子句中使用IN可以指定值是否在表中。 例如:显示学号为 962102 和962104 的记录。 SELECT * FROM STU2 WHERE 学号 in (“962102”,“962104”),ORDER BY关键字ORDER BY ASC|DESC子句用来对数据结果排序,ASC按升序排列,DESC按降序排列,默认是ASC。 如: SELCET * FROM STU1 WHERE

11、数学 IN(78,92,91),其结果按原记录顺序显示,要安数学成绩排序,需加上ORDER BY 子句。如下例:,SELECT * FROM STU1 WHERE 数学 IN(78,92,91) ORDER BY 数学,2. INSERT命令(插入命令) 格式:INSERT INTO (字段列表) VALUE (数据列表) 功能:插入一条新记录,其内容是将VALUE后(数据列表)中的数据依次送到(字段列表) 中的各字段。,如:INSERT INTO STU1 (学号,姓名,计算机基础,数学,马列原理,体育,总分,平均分)VALLUE (962105, 李小丽,77,88,90,80.2),3.

12、 UPDATE命令(更新命令) 格式:UPDATE SET ,=WHERE 例如:UPDATE STU2 SET 就读方式统招,UPDATE STU1 SET 计算机基础计算机基础1.15%,4.DELETE命令(删除命令) 格式:DELETE FROM 表文件名 WHERE 表达式 如:DELETE FROM STU2 WHERE 性别= 女,10.2 客户/服务器(C/S)模式编程在网络应用中,应用模式的发展变化,可以按出现的时间次序为:(1) 文件服务器模式及域模式(2) 客户机/服务器模式(client/server)模式(以下简称为C/S模式)(3) 以Internet/Intran

13、et为网络环境的B/S(Browser/Server)模式(4) 电子商务的B2B模式和B2C模式其中文件服务器模式及域模式主要是从对用户和资源管理角度考虑的,数据计算发生在每个用户的工作站上。而B/S模式是C/S模式在Internet环境下的新的体现方式。电子商务则事从网络应用领域这一角度而言的。,从最典型的数据库管理系统的应用来看,在LAN上采取的C/S模式,即指在LAN中至少有一台数据库服务器(DBMS server),可以作为希望去存取公共数据库的各台工作站的后援支持。把应用任务中的程序执行内容划分成两部分:与数据库存取有关的部分由DBMS server承担,与应用的人机界面处理,输入

14、/输出或一部分应用的逻辑功能等有关的内容由client端工作站承担。,10.3 ADO.NET概念无论什么样的程序,都要与数据打交道,现在的程 序中要处理的信息量越来越大,早已不能满足几个变量 所提供的信息量,而是把大量信息预先存储到数据库文 件中,然后利用某种技术读取数据库中的预存信息,将 读取的信息送给程序界面显示出来,或将新内容存入数 据库。ADO.NET就是就是负责数据存取的对象。,10.4 ADO.NET对象10.4.1 Connection对象Connection对象用于连接数据库。不同的数据库有不同的Connection对象。对于Access数据库的Connection对象主要是

15、OleDbConnection对象,它的主要功能是负责数据库的连接。在连接到数据库时必须提供连接到数据库的一些属性,如: Provider、DataSource等。例: OleDbConnection myconn=new OleDbconection(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:test.mdb”);,例: OleDbConnection myconn=newOleDbconection(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:test.mdb”);字符串太长,可以改写

16、成如下两条命令:string strCon=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:test.mdb”);OleDbConnection myconn=new OleDbconection(strCon);OleDbconection的两个重要方法:Open( ) 方法:打开与数据库表的连接例:myconn.Open( );Close( )方法: 关闭与数据库表的连接例:myconn.Close( ),例: private void button1_Click(object sender, System.EventArgs e)tryst

17、ring strCon=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:book.mdb“;OleDbConnection myConn=new OleDbConnection(strCon);myConn.Open();MessageBox.Show(“数据库连接成功!“);myConn.Close();catchMessageBox.Show(“连接错误“,“错误“); ,例: public void GetConnected() try string strCon=“Provider=Microsoft.Jet.OLEDB.4.0;Data

18、 Source=F:Book.mdb“;OleDbConnection myConn=new OleDbConnection(strCon);string strCom=“SELECT * FROM book“;this.myDataSet=new DataSet();myConn.Open();MessageBox.Show(“连接成功!“);OleDbDataAdapter myCommand=new OleDbDataAdapter(strCom,myConn);myCommand.Fill(myDataSet,“book“);myConn.Close();catch(Exception

19、 e)MessageBox.Show(“连接错误!“+e.ToString(),“错误“);private void button1_Click(object sender, System.EventArgs e)GetConnected();dataGrid1.DataSource=myDataSet.Tables“book“;,10.4.2 OleDbCommand对象OleDbCommand对象主要用来执行包括添加数据、删除数据、修改数据以及查询数据的操作的命令对象。 例: OleDbCommand inst=new OleDbCommand(“DELETE FROMbook WHERE

20、 id=1002”, myConnection1); SQL命令的执行一般用ExecuteNonQuery( )方法。ExecuteNonQuery( )方法: 执行 不返回结果的SQL 语句,常用于记录 的插入、删除、更新等操作。例:inst. ExecuteNonQuery( ); /应先把连接打开,10.4.3 DataAdapter(数据适配器)对象用于在数据源和数据集之间交换数据。.NET提供两种主要的数据适配器以供数据库一起使用:(1)OleDbDataAdapter控件(2)SqlDataAdapter控件由于我们使用Access建立数据库,因此主要用到OleDbDataAdap

21、ter控件。OleDbDataAdapter对象使用Fill()方法将数据从数据源装载到数据集中。格式:OleDbDataAdapter 对象名=new OleDbDataAdapter(SQL命令,连接名 );,例:/ 创建一个和数据库的连接 /SQL命令字符串string strCom=“SELECT * FROM 世界杯”;/创建一个数据集DataSet myDataSet=new DataSet();/用 OleDbDataAdapter得到一个数据集OleDbDataAdapter da=new OleDbDataAdapter(strCom, myConn);/把DataSet绑定

22、世界杯数据表da.Fill(myDataSet, “世界杯”);,10.4.4 DataAdapter(数据适配器)对象它的作用主要是在数据库与DataSet对象之间传递数 据。例如:在Command对象发出查询命令后,将获取的数据放入DataSet对象中。 .NET Framework提供两种主要的数据适配器以供与数据库一起使用。,(1)OleDbDataAdapter,它适用于由OLE DB提供程 序公开的任何数据源。 (2)SqlDataAdapter,它适用于SQL Server。由于该 对象不必通过OLE DB层,所以它比OleDbDataAdapter 快,但它只能用于SQL Se

23、rver 7.0或更高版本。由于我们使用Access建立数据库,因此用OleDbDataAdapter控件。OleDbDataAdapter对象使用Fill()方法将数据从数据源装载到数据集中。格式:OleDbDataAdapter 对象名=new OleDbDataAdapter(SQL命 令,连接名 );,10.4.5 DataSet对象当向数据库申请数据时,系统建立数据集和数据库之间的连接。ADO.NET向编程人员所提供的数据集对象是DataSet。DataSet对象是一个数据集,主要用来存放从数据库中取回的数据。命令格式:DataSet 对象名=new DataSet();例: Dat

24、aSet myDataSet=new DataSet();,数据集是包含数据表的集合,数据表包含数据行和列的集合,即DataSet对象包含数据表的集合Tables,而DataTable对象包含数据行的集合Rows、数据列的集合Columns。因此可以直接使用这些对象访问数据集中的数据。例:textBox1.Text=myDataSet.Tables0.Rows3.ItemArray1.ToString();,ADO.NET编程过程一般可以分为五步:(1)与数据库建立连接(创建Connection对象)如果用OleDbConnection命令建立连接,应加入如下代码:using System.D

25、ata.OleDb;连接的两个重要方法: Open()方法 Close()方法例: string strCon=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:book.mdb”); OleDbConnection myconn=new OleDbconection(strCon); myconn().Open(); Myconn().Close();(2)执行SQL命令(创建Command对象)SQL命令主要有SELECT、INSERT、UPDATE、DELETE。,(3)数据集编程(创建DataSet对象)在ADO.NET中,建立连接后就需要

26、使用数据命令打包SQL语句或存储过程。数据集就是临时存储从数据库检索的记录,是从数据源检索的记录的缓存,数据集中可包含一个或多个表,这些表基于实际数据库中的表。因为数据集实际上是数据库的私有副本,所以它不一定反映数据库的当前状态。如果想要查看其他用户进行的最新更改,可以通过调用适当的Fill()方法刷新数据集。(4)数据绑定(创建DataAdapter) Windows窗体的数据绑定便于在窗体控件中显示数据,如果使用DataGrid控件,则需要使用DataGrid控件进行绑定。主要通过Fill()方法。(5) 用户界面即将数据库内容显示给用户并可进行修改的界面。,例:,其中窗体的“Load”事

27、件代码为: private void Form1_Load(object sender, System.EventArgs e) trystring strCon=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:书.mdb“;OleDbConnection myConn=new OleDbConnection(strCon);string strCom=“SELECT * FROM book order by 编号 “;myConn.Open(); OleDbDataAdapter myCommand=new OleDbDataAdapter(s

28、trCom,myConn);myDataSet=new DataSet();myCommand.Fill(myDataSet,“book“);this.dataGrid1.DataSource=this.myDataSet.Tables“book“;myConn.Close();catch(Exception x) MessageBox.Show(“错误!”+x.ToString(), “error”); ,其中“查询”按钮的“单击”事件代码为: private void button1_Click(object sender, System.EventArgs e) try string s

29、trCon=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:书.mdb“; OleDbConnection myConn=new OleDbConnection(strCon);myConn.Open(); string strCom=“SELECT * FROM book WHERE 书名 Like %“+this.textBox1.Text+“%“;OleDbDataAdapter myCommand=new OleDbDataAdapter(strCom,myConn);this.myDataSet.Clear();myCommand.Fill(myDataSet,“book“);myConn.Close(); catch(Execption x) MessageBox.Show(“错误!”+x.ToString(), “error”); ,本章作业: 1. 习题10的12。,实验报告:实验九,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 数据库

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报