




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大连理工大学出版社高职教育出版中心大连理工大学出版社高职教育出版中心第第7 7章章 ADO.NET数据库访问技术数据库访问技术 2 2主要内容:主要内容:u数据控件访问数据库数据控件访问数据库uADO.Net数据库访问技术数据库访问技术u使用使用DataReader访问数据库访问数据库u使用使用DataAdapter和和DataSet访问数据库访问数据库目的要求:目的要求: 会利用数据控件访问数据库;会利用代码访问数据库;会利用数据控件访问数据库;会利用代码访问数据库;能浏览、查询、删除、修改能浏览、查询、删除、修改3 37.1 数据控件访问数据库数据控件访问数据库常用常用数据访问控件数据访问
2、控件 :(1)BindingSource控件:绑定数据源控件,用来绑定数控件:绑定数据源控件,用来绑定数据库。据库。(2)DataSet控件:数据集控件。控件:数据集控件。(3) DataGridView控件:数据网格视图控件,该控件主控件:数据网格视图控件,该控件主要以数据网格形式显示后台数据库的数据。要以数据网格形式显示后台数据库的数据。(4) BindingNavigator控件:数据导航条控件,该控件绑控件:数据导航条控件,该控件绑定数据源后,可实现数据导航。定数据源后,可实现数据导航。 4 4启动数据源配置向导的常用方法:启动数据源配置向导的常用方法:方法一:在方法一:在Visual
3、 Studio 2005中,单击菜单【数据】中,单击菜单【数据】|【添加新数据源】。【添加新数据源】。方法二:在方法二:在DataGridView控件的任务面板上控件的任务面板上“选择选择数据源数据源”下拉列表中单击下拉列表中单击“添加项目数据源添加项目数据源”。5 57.1 数据控件访问数据库数据控件访问数据库【实例【实例7-1】利用向导访问】利用向导访问Access数据库数据库1.新建项目新建项目2.添加添加【BindingSource】控件,单击其】控件,单击其DataSource属属性后的下拉按钮,单击性后的下拉按钮,单击【添加项目数据源】,启用添加项目数据源】,启用向导向导. . 6
4、 63.3.选选“数据库数据库”“下一步下一步” 4.“4.“新建连接新建连接” ” “ “更改更改” 7 7 5. 5.数据源选数据源选“Microsoft Access数据库文件数据库文件”“确定确定” 6.“6.“浏览浏览” ” 选数据库文件选数据库文件“确定确定” ” “下一步下一步”8 87. 选选“是是”将数据文件复制到项目中将数据文件复制到项目中8.单击单击 ”下一步下一步”,将连接字符串保存到应用程序配,将连接字符串保存到应用程序配置文件中。置文件中。9 99. 在如图在如图7-12所示的所示的“选择数据库对象选择数据库对象”对话框中,对话框中,选中选中“会员表会员表”,并单击
5、,并单击 【完成】按钮。【完成】按钮。101010. 10. 窗体上添加窗体上添加”DataGridViewDataGridView”控件控件, ,在其任务面板中在其任务面板中选数据库表选数据库表”MyuserMyuser”。11. 11. 运行运行注:利用注:利用DataGridViewDataGridView控件任务面板可添、删列,设置列属性。控件任务面板可添、删列,设置列属性。11117.1 数据控件访问数据库数据控件访问数据库【实例【实例7-2】利用向导访问】利用向导访问SQL Server数据库数据库1212主要设计步骤主要设计步骤: 1创建创建SQL Server数据库。数据库。
6、2设置数据库的登录验证模式。设置数据库的登录验证模式。 3新建项目。新建项目。 4启动数据源配置向导。启动数据源配置向导。 5添加并设置数据控件。添加并设置数据控件。 6. 添加代码。添加代码。 13137.2 常用常用SQL语句语句 SQL是结构化查询语言(是结构化查询语言(Structured Query Language)的缩写,是一种完整的数据库操作语)的缩写,是一种完整的数据库操作语言,目前已成为关系型数据库的访问标准。常见言,目前已成为关系型数据库的访问标准。常见的关系数据库的关系数据库Access、SQL Server等都支持等都支持SQL语语言。言。 SQL有有4种最基本的数据
7、操作语句:种最基本的数据操作语句:Select、Delete、Update、Insert,分别执行,分别执行4种基本操作:种基本操作:查询、删除、修改、插入。查询、删除、修改、插入。 14147.2.1 Select语句语句 Select 语句是语句是SQL语句中最常用的语句,用语句中最常用的语句,用于从数据库中查询数据。于从数据库中查询数据。 常用格式:常用格式: Select 字段列表字段列表 From 表或视图列表表或视图列表 Where 条件条件 Order By 字段字段1515【例【例1】Select * From 会员表会员表【例【例2】Select 姓名姓名,性别性别 From
8、会员表会员表【例【例3】Select * From 会员表会员表 Where 年龄年龄 23 【例【例4】Select * From 会员表会员表 Where 年龄年龄 Between 22 and 24【例【例5】Select * From 会员表会员表 Where 姓名姓名 like %李李%【例【例6】Select Top 5 * From 会员表会员表 Order By 年龄年龄 Desc16167.2.2 Delete语句语句 Delete语句用于从一个表中删除符合条件的语句用于从一个表中删除符合条件的记录。记录。 常用格式:常用格式: Delete From 表名表名 Where
9、条件条件【例【例7】Delete From 会员表会员表 where ID=10【例【例8】Delete From 会员表会员表17177.2.3 Update语句语句 Update语句用于修改数据表中一个或多个字语句用于修改数据表中一个或多个字段的值。段的值。 常用格式:常用格式:Update 表名表名 Set 字段字段1=字段字段1的值的值,字段字段2=字字段段2的值的值,Where 条件条件【例【例9】Update 会员表会员表 Set 姓名姓名=林娜林娜, 年龄年龄= 22 Where ID=218187.2.4 Insert语句语句 Insert语句用于向数据表中插入一条记录。语句用
10、于向数据表中插入一条记录。 常用格式:常用格式:Insert Into 表名表名(字段字段1,字段字段2, ) Values(字段字段1的值的值,字段字段2的值的值, )【例【例10】Insert into 会员表会员表(姓名姓名,性别性别,年龄年龄,Email) Values(张三张三, 男男, 23, ) 注注:“会员表会员表”中主键中主键ID为为“Int”型,且为型,且为“标标识识”,故不要给该字段赋值。,故不要给该字段赋值。 19197.3 ADO.NET概述概述ADO.NET ADO.NET 是是 Microsoft.NETMicrosoft.NET 框架引入的数据访问组框架引入的数
11、据访问组件,件,.NET .NET 框架提供了一组用于管理数据库交互的框架提供了一组用于管理数据库交互的对象;这些类统称为对象;这些类统称为 ADO.NETADO.NET。ADO.NET ADO.NET 的基本组件包括:的基本组件包括:DataSet DataSet 和和 .NET.NET数据提数据提供程序供程序. .NET数据提供程序包含数据提供程序包含4个核心对象:个核心对象:Connection对象、对象、Command对象、对象、DataReader对象和对象和DataAdapter对象对象 2020ADO.NET 的基本组件的基本组件DataSet2121ADO.NETADO.NET
12、访问数据库的方式访问数据库的方式: : (1)(1)利用利用DataReaderDataReader对象,这种方式只能读取数据库,不能对象,这种方式只能读取数据库,不能修改记录。修改记录。 (2)(2)利用利用DataAdapterDataAdapter和和DataSetDataSet对象,这种方式更灵活,可对象,这种方式更灵活,可对数据库进行各种操作对数据库进行各种操作。2222.NET.NET数据提供程序可用来连接数据库,执行命令,获取数据提供程序可用来连接数据库,执行命令,获取结果。结果。n访问访问SQL Server 7.0以上版本的数据库,用以上版本的数据库,用SQL Server
13、.NET数据提供程序,需要引用命名空间数据提供程序,需要引用命名空间System.Data.SqlClient;n访问访问Access数据库,用数据库,用OLE DB .NET数据提供程序,需数据提供程序,需要引用命名空间要引用命名空间System.Data.OleDB。 2323Connection、Command、DataReader 和和 DataAdapter 对象对象是是 .NET Framework 数据提供程序模型的核心元素。下表数据提供程序模型的核心元素。下表将描述这些对象。将描述这些对象。对象对象说明说明Connection建立与特定数据源的连接。建立与特定数据源的连接。Co
14、mmand对数据源执行命令。对数据源执行命令。DataReader从数据源中读取只进且只读的数据流。从数据源中读取只进且只读的数据流。DataAdapter用数据源填充用数据源填充 DataSet 并更新。并更新。24247.4.1 Connection对象对象u连接连接SQL Server(要引用要引用System.Data.SqlClient) 连接字符串连接字符串 2种写法种写法: “Server=服务器名服务器名;database=数据库名数据库名;uid=用户名用户名;Pwd=密码密码”; “Server=服务器名服务器名;database=数据库名数据库名; IntegretedS
15、ecurity=true; 创建连接格式:创建连接格式: SqlConnection 对象名对象名 = new SqlConnection(连接字符串连接字符串 ); 如:如: string strCon=“Server=. ;database=Mysql1 ;uid=sa;pwd=”; SqlConnection con = new SqlConnection(strCon ); 7.4 ADO.NET对象对象 2525l连接连接Access数据库数据库(要引入要引入System.Data.OLEDB) 连接字符串连接字符串 String strCon=“ Provider=Microsof
16、t.OLEDB.4.0;Data Source=数据库名数据库名” 创建连接格式:创建连接格式: OleDbConnection 对象名对象名 = new OleDbConnection(连接字连接字符串符串); 如如:String strCon=“ Provider=Microsoft.OLEDB.4.0;Data Source=db1.mdb” OleDbConnection con = new OleDbConnection(strCon);2626uConnection的两个重要方法的两个重要方法: Open( ) 方法:打开与数据库表的连接方法:打开与数据库表的连接 例:例:myco
17、nn.Open( ); Close( )方法方法: 关闭与数据库表的连接关闭与数据库表的连接 例:例:myconn.Close( )2727u使用使用Connection对象对象 Connection对象应用的一般步骤是:对象应用的一般步骤是: (1) 设置连接字符串;设置连接字符串; (2) 创建创建Connection类型的对象;类型的对象; (3) 打开数据源的连接;打开数据源的连接; (4) 执行数据库的访问操作代码;执行数据库的访问操作代码; (5) 关闭数据源连接。关闭数据源连接。【实例【实例7-3】连接】连接SQL Server数据库数据库28287.4.2 Command对象对
18、象与数据库建立连接后,与数据库建立连接后,Command对象使用对象使用SQL语句语句对数据库进行操作并从数据源返回结果。对数据库进行操作并从数据源返回结果。(1)创建创建Command实例实例 创建格式创建格式: SqlCommand 对象名对象名 = new SqlCommand(SQL语句语句, 连接名连接名); 如: string sql=“Select * from Myuser“; /SQL语句字符串语句字符串 SqlCommand cmd = new SqlCommand(sql, strCon); /创建创建 Command实例实例, 其中其中strCon 为连接字符串为连接字
19、符串2929(2) Command对象常用属性对象常用属性: nCommandText:欲执行的内容:欲执行的内容(SQL(SQL语句或存储过程名称语句或存储过程名称) )nConnection:使用的活动连接。:使用的活动连接。nCommandType:命令类型,默认为:命令类型,默认为TextText,也可以是:,也可以是: StoreProcedure(3) Command对象常用方法:对象常用方法:uExecuteReader():返回:返回DataReader类型值类型值 当用当用Select SQL语句进行记录的查询时用此方法语句进行记录的查询时用此方法uExecuteNonQue
20、ry():返回受影响的行数:返回受影响的行数 当用当用delete、insert、update等等SQL语句进行插、删、改语句进行插、删、改等操作时用此方法等操作时用此方法uExecuteScalar():返回第一行第一列:返回第一行第一列 当用当用SQL聚合函数进行数据统计时用此方法聚合函数进行数据统计时用此方法3030SQL命令的执行一般用命令的执行一般用ExecuteNonQuery( )方法方法, 用于记用于记录的插、删、改等操作,如:录的插、删、改等操作,如: myCommand. ExecuteNonQuery( ); /应先把连接打开应先把连接打开【示例【示例1】 SqlComm
21、and cmd=new SqlCommand(sql语句语句,连接名连接名);或或 SqlCommand cmd=new SqlCommand(); cmd.CommandText=“SQL语句语句”; cmd.Connection= sqlcon;【示例【示例2】 string sql=“insert into Myuser (姓名姓名,性别性别,年龄年龄,Email) values(王娜王娜,女女,23,)“ SqlCommand cmd = new SqlCommand(sql, sqlcon);31317.4.3 DataReader对象对象DataReader(数据读取器数据读取器)
22、主要应用在有连接的数据应用场主要应用在有连接的数据应用场合,它提供了快速的、只读的、仅向前的数据访问方式。合,它提供了快速的、只读的、仅向前的数据访问方式。3232DataReader对象的对象的 常用属性常用属性: uHasRows:是否含有一行或多行的值:是否含有一行或多行的值uFieldCount :当前行中的字段:当前行中的字段(列列)数数DataReader对象的常用方法:对象的常用方法:uClose :用于关闭:用于关闭 DataReader 对象对象 uRead:使:使 DataReader 前移到下一个记录,返回值为前移到下一个记录,返回值为true 或或 falseDataR
23、eader对象的创建格式对象的创建格式:SqlDataReader 对象名对象名 = SqlCommand对象对象.ExecuteReader();如:如:SqlDataReader dr = mycommand.ExecuteReader();33337.4.4 DataAdapter对象对象 DataAdapter(数据适配器数据适配器)是与数据集一起使用的对象,是与数据集一起使用的对象,和一个数据库连接后用于填充数据集和更新数据源,它和一个数据库连接后用于填充数据集和更新数据源,它主要用于管理与数据库的连接、执行命令并向数据集返主要用于管理与数据库的连接、执行命令并向数据集返回数据。回数
24、据。主要方法主要方法: Fill:将数据从数据源装载到数据集中。:将数据从数据源装载到数据集中。 Update:将:将DataSet里面的数值存储到数据库服务器上里面的数值存储到数据库服务器上主要属性主要属性: InsertCommand:插入新记录的:插入新记录的SQL语句或存储过程语句或存储过程UpdateCommand:更新记录的:更新记录的SQL语句或存储过程语句或存储过程DeleteCommand :删除记录的:删除记录的SQL语句或存储过程语句或存储过程SelectCommand :选择记录的:选择记录的SQL语句或存储过程语句或存储过程创建格式:创建格式:SqlDataAdapt
25、er 对象名对象名= new SqlDataAdapter(SQL语句语句, 连接名连接名);3434DataAdapter 对象对象 DataTableDataTableDataSetFillUpdateData sourceDataAdapterDataAdapterFillUpdate35357.4.5 数据集数据集DataSet 当向数据库申请数据时,系统建立数据集和数据当向数据库申请数据时,系统建立数据集和数据库之间的连接。库之间的连接。 ADO.NET向编程人员所提供的数据集对象是向编程人员所提供的数据集对象是DataSet。 DataSet对象是一个数据集,主要用来存放从数据库对
26、象是一个数据集,主要用来存放从数据库中取回的数据,可将中取回的数据,可将DataSet看作一个小型内存数据库,看作一个小型内存数据库,它包含表、列、行、约束和关系,这些它包含表、列、行、约束和关系,这些DataSet对象称对象称为为DataTable、DataColumn、DataRow、Constraint和和Relations。 DataSet对象在使用前必须创建对象在使用前必须创建 。 创建格式:创建格式:DataSet 对象名对象名=new DataSet(); 例例: DataSet myds=new DataSet();3636 DataSet 对象的对象的Tables属性值是一个
27、属性值是一个DataTable对象集,对象集,每个每个DataTable对象代表了数据库中的一个表,而对象代表了数据库中的一个表,而DataTable对象包含数据行的集合对象包含数据行的集合Rows、数据列的集合、数据列的集合Columns,因此可直接使用这些对象访问数据集中的数,因此可直接使用这些对象访问数据集中的数据据 。例。例: textBox1.Text=mydataSet.Tables“Myuser”.Rows0“姓姓名名”.ToString(); /显示数据表显示数据表“Myuser” 第一行中第一行中“姓名姓名”字段的值字段的值 textBox1.Text= ds.Tables“
28、Myuser”.Rows0.ItemArray1.ToString(); /显示数据表显示数据表“Myuser” 第一行第二列的值第一行第二列的值3737使用使用DataAdapter和和DataGridView显示数据的过程显示数据的过程n建立数据库连接建立数据库连接(Connection)(Connection)对象。对象。n使用使用SQLSQL语句和语句和ConnectionConnection对象建立数据适配器对象建立数据适配器(DataAdapter) (DataAdapter) n建立建立DataSetDataSet对象对象n使用使用DataAdapterDataAdapter进行
29、数据填充进行数据填充(Fill)(Fill)n将将DataSetDataSet绑定到绑定到DataGridViewDataGridView控件,就可在控件,就可在WinFormWinForm上上显示数据显示数据3838【实例【实例7-4】数据库简单操作】数据库简单操作 示例数据库示例数据库(Mysql1.mdf)(Mysql1.mdf)3939(1)【dataAdapter示例】选项卡的设计示例】选项卡的设计4040string strCon=server=.;database=Mysql1;uid=sa;pwd= ; /连接字符串SqlConnection con = new SqlConn
30、ection(strCon); /创建连接实例string sql=“Select * from Myuser“; /sql语句SqlDataAdapter da = new SqlDataAdapter(sql, con); /创建数据适配器实例DataSet ds = new DataSet(); /创建DataSet实例da.Fill(ds, Myuser);/填充数据集dataGridView1.DataSource = ds.Tables“Myuser”; /绑定数据为【加载数据】按钮的为【加载数据】按钮的Click事件添加如下代码:事件添加如下代码: 4141(2) 【DataRe
31、ader示例】选项卡的设计示例】选项卡的设计SqlConnection con = new SqlConnection(server=.;database=Mysql1;uid=sa;pwd= );SqlCommand cmd = new SqlCommand(Select * from Myuser, con);con.Open();/打开连接, 必须打开SqlDataReader dr = cmd .ExecuteReader(); richTextBox1.Text = “IDt姓名t性别t年龄tE-mailn”; / n表示换行 t表示制表位 while (dr.Read() rich
32、TextBox1.AppendText(drID.ToString() + t); richTextBox1.AppendText(dr姓名.ToString() + t); richTextBox1.AppendText(dr性别.ToString() + t); richTextBox1.AppendText(dr年龄.ToString() + t); richTextBox1.AppendText(drEmail.ToString() + tn); con.Close(); /关闭连接1.建连接建连接2.建命令建命令3.读取数据读取数据4242(3) 【插入示例】选项卡的设计插入示例】选
33、项卡的设计 4343 string sName=txtName.Text; string sSex=comboBoxSex.Text; string sAge=txtAge.Text; string sEmail=txtEmail.Text; SqlConnection con = new SqlConnection(server=.;database=Mysql1;uid=sa;pwd= ); SqlCommand com = new SqlCommand(, con); com.CommandText = insert into Myuser values( + sName + “ , +
34、 sSex + “ , + sAge + “ , + sEmail + “ ) ; con.Open();/打开连接 try com.ExecuteNonQuery(); MessageBox.Show(插入成功!); catch (Exception ex) MessageBox.Show(插入出错!原因为:n + ex.Message); con.Close(); /关闭连接构造插入的构造插入的SQL语句语句4444(4) 【删除修改示例删除修改示例】选项卡的设计选项卡的设计4545SqlConnection con = new SqlConnection(server=.;databas
35、e=Mysql1;uid=sa;pwd= );String sql=select * from Myuser where ID=+txtID.Text;SqlCommand cmd = new SqlCommand(sql, con);cmd.CommandText =con.Open();/打开连接SqlDataReader dr = cmd.ExecuteReader();if (dr.Read() txtName1.Text = dr姓名.ToString(); comboBoxSex1.Text= dr性别.ToString(); txtAge1.Text = dr年龄.ToStrin
36、g(); txtEmail1.Text = drEmail.ToString(); else MessageBox.Show(学号为 + txtID0 + 的学生在数据库中不存在!); dr.Close(); /关闭dr con.Close();/关闭连接查询部分查询部分4646 SqlConnection con = new SqlConnection(server=.;database=Mysql1;uid=sa;pwd= ); string sql = delete from Myuser where ID= + txtID0.Text; SqlCommand cmd = new SqlCommand(sql, con); con.Open();/打开连接 try cmd.ExecuteNonQuery(); MessageBox.Show(删除成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 品牌管理全套试卷四复习测试题
- 科技教育中的绿色课堂构建
- 印度合同范本
- 2025年云南省建筑安全员C证(专职安全员)考试题库
- 电子文件中规范处理技巧与格式规范例如Office办公环境
- 幼儿园中班元旦活动策划方案范文
- 计算机辅助设计Iphotoshop知到智慧树章节测试课后答案2024年秋齐齐哈尔工程学院
- 外包接单合同范本
- 塔机司机合同范本
- 2025年广东生态工程职业学院单招职业技能测试题库及答案1套
- 2024年度中国宠物行业研究报告
- 工业自动化控制系统升级与维护服务合同
- 定岗定编定员实施方案(5篇)
- 药品经营质量管理规范
- 爆破工程师培训
- 2024年云南省公务员考试《行测》真题及答案解析
- 教科版初中物理八年级下册知识梳理
- 《飞科电器公司盈利能力存在的问题及完善对策(7800字论文)》
- 零星维修工程项目施工方案1
- 楚辞离骚的原文全文完整注音版、拼音版标准翻译译文及注释
- 湖北省荆州市2024年七年级上学期期中数学试题【附答案】
评论
0/150
提交评论