版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 ADO.NET向编程人员提供了功能强大的数据访问能力,既可以直接在编程模式下通过输入程序代码设计数据访问程序,也可以利用系统提供的数据访问向导直接进行可视化程序设计。 第1页,共43页。9.1 Access数据库 数据库(Database,即DB)是存储在一起的相关数据的集合,是存储数据的“仓库”。是指依照一定格式存放在一起的数据记录文件。 。 数据库中的信息是以表的形式组成的,一个数据库中可以放多个表,各个表具有行和列。 “数据库管理系统DBMS”(database management system)则是用来操作与管理数据库的软件,Microsoft Access、Microsoft S
2、QL Server、Oracle都是属于DBMS软件,通过这些软件,用户可以对数据进行定义、创建与运算。 第2页,共43页。9.1.1 建立Access数据库表 选按“开始”|“程序”|“Microsoft Access”,启动Access,屏幕上会出现如图9-1所示的对话框,在任务窗格内点取“空Access数据库”,然后单击“确定”按钮。出现“文件新建数据库”对话框,指定新数据库的保存位置、文件名,然后按“创建”。在此,将新数据库存放在“我的文档”内,文件名称为“Friend”,文件夹型为Microsoft Access数据库。第3页,共43页。信息中心专门人才基本情况表 编号姓名性别出生日
3、期工资党员否简历照片bj10001刘伟箭男1960.08.232000.00T(略)(略)bj11002刘简捷男1958.12.311800.00T(略)(略)gz05001藤波海男1956.04.141160.00T(略)(略)gz05002杨行东男1949.03.301260.00F(略)(略)jl04001林慧繁女1965.02.036000.00T(略)(略)jl04002黄晓远男1969.08.128000.00F(略)(略)sy02030李鹏程男1946.02.083000.00F(略)(略)sy02035王国民男1935.05.205000.00F(略)(略)sh01001金银桥
4、女1969.01.242000.00F(略)(略)sh01002林立荞女1964.08.164500.00F(略)(略)第4页,共43页。9.1.1 建立Access数据库表 选按“开始”|“程序”|“Microsoft Access”,启动Access,屏幕上会出现对话框,在任务窗格内点取“空Access数据库”,然后单击“确定”按钮。出现“文件新建数据库”对话框,指定新数据库的保存位置、文件名,然后按“创建”。 Microsoft Access创建的数据库文件的扩展名是.mdb。第5页,共43页。9.1.2 Access数据库操作1. 创建新数据库项目 2. 创建数据库连接 对数据库的操作
5、首先要和数据库建立一个连接,与数据库建立连接可以通过系统提供的控件实现。 3. 创建数据库对象和访问方法 4设置程序显示界面 5. 显示数据库中的数据第6页,共43页。9.2 客户/服务器(C/S)模式编程概念 在网络应用中,应用模式的发展变化,可以按出现的时间次序分为:(1) 文件服务器模式及域模式(2) 客户机/服务器模式(client/server)模式(以下简称为C/S模式)(3) 以Internet/Intranet为网络环境的B/S(Browser/Server)模式(4) 电子商务的B2B模式和B2C模式 其中文件服务器模式及域模式主要是从对用户和资源管理角度考虑的,数据计算发生
6、在每个用户的工作站上。而B/S模式是C/S模式在Internet环境下的新的体现方式。第7页,共43页。 20世纪90年代以来, C/S模式得到了十分迅速的流行。它主要从一次数据计算的完成过程这个角度而言的,客户机进行数据请求,请求传到服务器,服务器负责完成数据计算或数据库操作,最终结果返回到客户机。几乎每个新的网络操作系统和每个新的多用户数据库系统都声称能支持C/S模式。实现C/S模式允许有许多不同的策略。 从最典型的数据库管理系统的应用来看,在LAN上采取的C/S模式,即指在LAN中至少有一台数据库服务器(DBMS server),可以作为希望去存取公共数据库的各台工作站的后援支持。把应用
7、任务中的程序执行内容划分成两部分:与数据库存取有关的部分由DBMS server承担,与应用的人机界面处理,输入/输出或一部分应用的逻辑功能等有关的内容由client端工作站承担。 第8页,共43页。SQL语言简介 SQL(Structured Query Lanuage,结构化查询语言)是现代关系数据库的标准语言。现在的大多数数据库系统都采用SQL语言作为共同的数据存取语言和标准接口,使不同数据库系统之间的互操作成为了可能。 SQL语言的功能极为强大,语言十分简捷,第321页的表13-1列出了SQL语言的9个命令,这9个命令就可以完成几乎所有的数据操作,在这9个命令中,常用的只有4个。 如果
8、要使用SQL编写程序,则需要另一语言或平台来实现所有实际信息的显示。第9页,共43页。例如:SELECT * FROM STU1第10页,共43页。语句:SELECT 学号,姓名,数学 FROM STU1第11页,共43页。语句:SELECT 学号,数学+5 FROM STU1第12页,共43页。WHERE关键字在WHERE子句中,用条件表达式来确定要显示的记录。 WHERE 例如:SELECT 学号,姓名 FROM STU1 WHERE 数学=90第13页,共43页。SELECT 学号,姓名 FROM STU1 WHERE 数学 =90 OR 平均分=85第14页,共43页。BETWEEN关
9、键字在WHERE子句中可以使用BETWEEN来指定可接受值的范围。例如:要显示学生档案表STU2中数学成绩在91到92的学生情况。SELECT * FROM STU2 WHERE 数学 BETWEEN (91) AND(92)第15页,共43页。LIKE关键字格式: WHERE LIKE 说明:字符串常量中的字符可以包含如下两个特殊符号: % 表示任意长度的字符串; _ 表示任意一个字符例:查询所有姓 “张”的学生的学号和姓名。 SELECT 学号,姓名 FROM 学生表 WHERE 姓名 LIKE 张%例: 查询第二个汉字是“红”的学生的学号和姓名 SELECT 学号,姓名 FROM 学生表
10、 WHERE 姓名 LIKE _红%第16页,共43页。IN关键字 在WHERE子句中使用IN可以指定值是否在表中。例如:显示学号为 962102 和962104 的记录。SELECT * FROM STU2 WHERE 学号 in (“962102”,“962104”)第17页,共43页。 ORDER BY关键字 ORDER BY ASC|DESC子句用来对数据结果排序,ASC按升序排列,DESC按降序排列,默认是ASC。如: SELCET * FROM STU1 WHERE 数学 IN(78,92,91) 其结果按原记录顺序显示,要安数学成绩排序,需加上ORDER BY 子句。如下例:第1
11、8页,共43页。SELECT * FROM STU1 WHERE 数学 IN(78,92,91) ORDER BY 数学第19页,共43页。2. INSERT命令(插入命令)格式:INSERT INTO (属性列表) VALUE (数据表)功能:插入一条新记录,其内容是将VALUE后(数据表)中的数据依次送到(属性列表) 中的各属性。 如:INSERT INTO STU1 (学号,姓名,计算机基础,数学,马列原理,体育,总分,平均分)VALLUE (962105, 李小丽,77,88,90,80.2)第20页,共43页。3. UPDATE命令(更新命令)格式:UPDATE SET WHERE
12、例如:UPDATE STU2 SET 就读方式统招第21页,共43页。UPDATE STU1 SET 计算机基础计算机基础1.15%第22页,共43页。4.DELETE命令(删除命令)格式:DELETE FROM 表文件名 WHERE 表达式如:DELETE FROM STU2 WHERE 性别= 女第23页,共43页。9.3 ADO.NET编程 无论什么样的程序,都要与数据打交道,现在的程序中要处理的信息量越来越大,早已不能满足几个变量所提供的信息量,而是把大量信息预先存储到数据库文件中,然后利用某种技术读取数据库中的预存信息,将读取的信息送给程序界面显示出来,或将新内容存入数据库。ADO.
13、NET就是就是负责数据存取的对象。第24页,共43页。 9.3.1 ADO.NET的概念 在应用程序中访问数据库的一般过程为:首先必须连接数据库;接着发出SQL语句,告诉数据库要进行什么样的工作;最后由数据库返回所需的数据记录。 在ADO.NET中,上述访问数据库的三项工作,分别由三个对象来完成:Connection对象负责连接数据库;Command对象对数据下达SQL命令;DataSet对象用来保存所查询到的数据记录。 在ADO.NET中,介于DataSet和Connection对象之间,还有一个在数据库与DataSet对象之间扮演传递数据的对象DataAdapter(适配器)。此外,还有一
14、个DataView对象,该对象提供了对DataSet对象内的表进行排序、过滤记录及记录搜索等功能。 第25页,共43页。数据集组件(DataSet控件) 当向数据库申请数据时,系统建立数据集和数据库之间的连接。 ADO.NET向编程人员所提供的数据集组件是DataSet。 DataSet控件是一个数据集,主要用来存放从数据库中取回的数据。命令格式:DataSet 对象名=new DataSet(); 例: DataSet myDataSet=new DataSet(); 第26页,共43页。 数据适配器组件 用于在数据源和数据集之间交换数据。 .NET提供两种主要的数据适配器以供数据库一起使用
15、: (1)OleDbDataAdapter控件 (2)SqoDataAdapter控件 由于我们使用Access建立数据库,因此主要用到OleDbDataAdapter控件。 OleDbDataAdapter对象使用fill()方法将数据从数据源装载到数据集中,使用Update()方法将数据集中的数据返回到数据源中。 格式: OleDbDataAdapter 对象名=new OleDbDataAdapter(SQL命令,连接名 );第27页,共43页。例:/ 创建一个和数据库的连接 /SQL命令字符串 string strCom=“SELECT * FROM 世界杯”; /创建一个数据集 Da
16、taSet myDataSet=new DataSet(); /用 OleDbDataAdapter得到一个数据集 OleDbDataAdapter da=new OleDbDataAdapter(strCom, myConn); /把DataSet绑定世界杯数据表 da.Fill(myDataSet, “世界杯”); da.Update(myDataSet, “世界杯”);第28页,共43页。 OleDbConnection控件的主要功能是负责数据源的连接。在连接到数据源时必须提供连接到数据源的一些属性,如:Provider、DataSource等。 例:OleDbConnection my
17、conn=new OleDbconection(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:test.mdb”);第29页,共43页。例: OleDbConnection myconn=new OleDbconection(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:test.mdb”); 字符串太长,可以改写成如下两条命令: string strCon=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:test.mdb”); OleDbConn
18、ection myconn=new OleDbconection(strCon); OleDbconection的两个重要方法: Open( ) 方法:打开与数据库表的连接 例:myconn.Open( ); Close( )方法: 关闭与数据库表的连接 例:myconn.Close( )第30页,共43页。例: private void button1_Click(object sender, System.EventArgs e) try string strCon=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:book.mdb; OleDb
19、Connection myConn=new OleDbConnection(strCon); myConn.Open(); MessageBox.Show(数据库连接成功!); myConn.Close(); catch MessageBox.Show(连接错误,错误); 第31页,共43页。例: public void GetConnected() trystring strCon=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:Book.mdb; OleDbConnection myConn=new OleDbConnection(strCon
20、); 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 e) MessageBox.Show(连接错误!+e.ToString(),错误); private void button1_Cl
21、ick(object sender, System.EventArgs e) GetConnected(); dataGrid1.DataSource=myDataSet.Tablesbook; 第32页,共43页。9.3.3 ADO.NET编程及绑定1. 数据集编程在ADO.NET中,建立连接后就需要使用数据命令打包SQL语句或存储过程。如果是使用SELECT语句查询数据库,调用命令的执行方法后将返回查询结果,同时将数据缓存到数据集中,用户可使用数据集获取这些行;如果是调用Update命令,则将返回所影响的行数;其他类型的命令将返回一个错误代码。第33页,共43页。在ADO.NET中,数据集
22、就是临时存储从数据库检索的记录,是从数据源检索的记录的缓存,数据集中可包含一个或多个表,这些表基于实际数据库中的表。 因为数据集实际上是数据库的私有副本,所以它不一定反映数据库的当前状态。如果想要查看其他用户进行的最新更改,可以通过调用适当的Fill()方法刷新数据集。 SQL命令主要有SELECT、INSERT、UPDATE、DELETE。 第34页,共43页。2. 数据绑定 Windows窗体的数据绑定便于在窗体控件中显示数据,如果使用DataGrid控件,则需要使用DataGrid控件进行绑定。主要通过Fill()方法。 第35页,共43页。例: 第36页,共43页。其中窗体的“Load
23、”事件代码为:private void Form1_Load(object sender, System.EventArgs e) try string strCon=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:book.mdb; OleDbConnection myConn=new OleDbConnection(strCon); string strCom=SELECT * FROM book order by 编号 ; myConn.Open();OleDbDataAdapter myCommand=new OleDbDataAdapte
24、r(strCom,myConn); myDataSet=new DataSet(); myCommand.Fill(myDataSet,book); this.dataGrid1.DataSource=this.myDataSet.Tablesbook; myConn.Close(); catch(Execption x) MessageBox.Show(“错误!”+x.ToString(), “error”); 第37页,共43页。其中“查询”按钮的“单击”事件代码为:private void button1_Click(object sender, System.EventArgs e)
25、trystring strCon=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:book.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();
26、myCommand.Fill(myDataSet,book); myConn.Close();catch(Execption x) MessageBox.Show(“错误!”+x.ToString(), “error”); 第38页,共43页。其中“添加”按钮的“单击”事件代码为:private void button2_Click(object sender, System.EventArgs e) trystring strCon=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:book.mdb;OleDbConnection myConn=n
27、ew OleDbConnection(strCon); myConn.Open();string strCom=INSERT INTO book(编号,书名,作者,价格,书架号) VALUES (+this.textBox2.Text+,+this.textBox3.Text+,+this.textBox4.Text+,+this.textBox5.Text+,+this.textBox6.Text+); OleDbCommand inst=new OleDbCommand(strCom,myConn); inst.ExecuteNonQuery(); OleDbDataAdapter myC
28、ommand=new OleDbDataAdapter(SELECT * FROM book order by 编号,myConn); myDataSet.Clear(); myCommand.Fill(myDataSet,book); myConn.Close(); catch(Exception x) MessageBox.Show(错误+x.ToString(),error);第39页,共43页。其中“删除”按钮的“单击”事件代码为:private void button3_Click(object sender, System.EventArgs e) try int a=this.d
29、ataGrid1.CurrentCell.RowNumber; string strCon=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:book.mdb; OleDbConnection myConn=new OleDbConnection(strCon); myConn.Open(); string strCom=“DELETE From book where 编号 = strCom +=this.myDataSet.Tables0.Rowsa0; OleDbCommand delst=new OleDbCommand(strCom,myCo
30、nn); delst.ExecuteNonQuery(); OleDbDataAdapter myCommand=new OleDbDataAdapter(SELECT * FROM Book order by 编号,myConn); myDataSet.Clear(); myCommand.Fill(myDataSet,book); myConn.Close(); catch(Exception x) MessageBox.Show(错误+x.ToString(),error); 第40页,共43页。其中“修改”按钮的“单击”事件代码为(这里一次只能修改一行):private void bu
31、tton4_Click(object sender, System.EventArgs e) try int a=this.dataGrid1.CurrentCell.RowNumber; string strCon=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:book.mdb; OleDbConnection myConn=new OleDbConnection(strCon); myConn.Open(); string strCom=“UPDATE book set 书名=“ +this.myDataSet.Tables”book“.Ro
32、wsa1+”,作者=“ +this.myDataSet.Tables”book“.Rowsa2+”,价格=“ +this.myDataSet.Tables”book“.Rowsa3+”,书架号=“ +this.myDataSet.Tables”book“.Rowsa4+” where 编号= +this.myDataSet.Tablesbook.Rowsa0;OleDbCommand inst=new OleDbCommand(strCom,myConn); inst.ExecuteNonQuery(); OleDbDataAdapter myCommand=new OleDbDataAdap
33、ter(SELECT * FROM book order by 编号,myConn); this.myDataSet.Clear(); myCommand.Fill(myDataSet,book); myConn.Close(); catch(Exception x) MessageBox.Show(错误+x.ToString(),error); 第41页,共43页。“修改”多行按钮的“单击”事件代码为:private void button2_Click(object sender, System.EventArgs e) trystring strCon=Provider=Microsoft.Jet.OLEDB.4.0;Data source=F:student.mdb; OleDbConnection myconn=new OleDbConnection(strCon); string upstr; OleDbCommand inst; myconn.Open(); int a=this.myDataSet.Tables0.Rows.Count; this.textBox1.Text=a.ToString(); for(int i=0;ia;i+) upstr=“update student set 姓名=”+this.myDataSe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年郑州市郑盐盐业集团有限公司招聘一批工作人员考试备考题库及答案解析
- 2026河南商丘市直机关事业单位公益岗位招聘13人笔试备考题库及答案解析
- 2026黑龙江哈尔滨工业大学机电工程学院机械设计系招聘笔试备考题库及答案解析
- 2026湖北武汉人才服务发展有限公司招聘派往武汉市国企工作笔试备考题库及答案解析
- 2026年内蒙古科技职业学院单招职业适应性测试题库有答案详细解析
- 2026青海湟水文化产业有限公司招聘6名笔试模拟试题及答案解析
- 2026宁夏银川市永宁县卫生健康系统第一期专业技术人员自主招聘59人笔试备考试题及答案解析
- 2026云南临沧永德县人力资源和社会保障局招聘就业见习人员30人考试备考题库及答案解析
- 2026浙江事业单位统考玉环市招聘59人笔试模拟试题及答案解析
- 贵州省重点名校2026届初三第一次教学质量检测试题语文试题试卷含解析
- 玻璃外墙清洗合同范本
- 2025中远海运发展股份有限公司招聘1人笔试历年难易错考点试卷带答案解析试卷3套
- 缩宫素点滴引产术课件
- 抗生素使用考试题及答案
- 雨课堂在线学堂《中国传统文化》课后单元测试答案
- TCNAS 48─2025成人留置导尿的护理并发症处理
- 2026年洛阳文化旅游职业学院单招综合素质考试题库新版
- 高中历史名词解释+知识清单+2025-2026学年高考二轮精准复习
- 机柜散力架施工方案
- 机场搬运工考试题及答案
- DB32∕T 4644.1-2024 从业人员健康检查 第1部分:检查机构管理规范
评论
0/150
提交评论