版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第9章 数据库应用 学习内容与要点使用ADO.NET对象使用ADO.NET控件29.1 概述 ADO.NET统一了数据容器类编程接口,无论编写何种应用程序(Windows窗体、Web窗体、Web服务)都可以通过同一组类来处理数据。无论后端数据源是SQL Server数据库、Oracle数据库、其它数据库、XML文件,还是一个文本文件,都使用一样的方式来处理它们。 ADO.NET包含两大核心控件,它们分别是.NET Framework数据提供程序和DataSet。3l.NET Framework数据提供程序用于数据提供程序用于 连接到数据库、执行命令和检索结果。连接到数据库、执行命令和检索结果
2、。l.NET Framework 提供了四个提供了四个 .NET Framework 数据提供程序:数据提供程序:SQL Server .NET Framework 数据提供程序数据提供程序OLE DB .NET Framework 数据提供程序数据提供程序ODBC .NET Framework 数据提供程序数据提供程序Oracle .NET Framework 数据提供程序数据提供程序4l.NET 数据提供程序提供四个核心对象数据提供程序提供四个核心对象lConnection对象用于与特定的数据源建立对象用于与特定的数据源建立连接连接lCommand对象用于对数据源执行命令对象用于对数据源执
3、行命令lDataReader对象用于从数据源中读取只向对象用于从数据源中读取只向前的只读数据流,它是一个简易的数据集前的只读数据流,它是一个简易的数据集lDataAdapter对象用于用数据源的数据填对象用于用数据源的数据填充充 DataSet数据集并解析更新数据集。数据集并解析更新数据集。 lDataSet是一个功能丰富、较复杂的数据集,是一个功能丰富、较复杂的数据集,它是支持它是支持 ADO.NET的断开式、分布式数据的断开式、分布式数据方案的核心对象。方案的核心对象。DataSet 表示包括相关表、表示包括相关表、约束和表间关系在内的整个数据集。约束和表间关系在内的整个数据集。 59.2
4、 ADO.NET对象9.2.1 Connection对象对象用于连接数据库。用于连接数据库。 1.Connection对象的主要属性是ConnectionString,用于设置连接字符串。对于不同的Connection对象,其连接字符串也有所不同。 (1)SQL Server使用SqlConnection对象。其典型的连接字符串为:server=localhost;database=northwind ;uid=sa;pwd= server=localhost;database=northwind; Integrated Security=SSPI“ 注意: SqlConnection对象需要
5、命名空间 SYStem.Data.SqlClient6SqlConnection类的常用方法Close方法: 关闭数据库连接Open方法 打开一个数据库连接7例:打开和关闭数据库private void button1_Click(object sender, EventArgs e) string constr = server=(local);database=学生管理数据库;uid=sa;pwd=123; SqlConnection con = new SqlConnection(constr); con.Open(); string sqlstr = select count(*) f
6、rom student; SqlCommand cmd = new SqlCommand(sqlstr, con); int count = Convert.ToInt32(cmd.ExecuteScalar(); textBox1.Text = count.ToString(); con.Close(); 8(2)OLE DB使用使用OleDbConnection对象。对象。 连接字符串:Provider=SQLOLEDB;Data Source=MySQLServer;Integrated Security=SSPI“注意: OleDbConnection对象需要命名空间 SYStem.D
7、ata.OleDb99.2.2 Command对象对象 Command对象用于完成对数据源的查询、插入、删除、更新等操作。 常用属性 CommandType:获取或设置Command对象要执行命令的类型 CommandText:获取或设置对数据源执行的SQL语句或存储过程名或表名 CommandTimeOut:获取或设置在终止对执行命令的尝试并生成错误之前的等待时间Connection:获取或设置此Command对象使用的Connetion对象的名称10 可以使用SQL语句,存储过程完成这些操作。 使用存储过程:CommandType属性设为 StoredProcedure,CommandTe
8、xt属性设为存储过程的名字。 使用SQL语句:把CommandType属性设为 Text,CommandText属性设为SQL语句。 直接访问整个数据表:把CommandType属性设为TableDirect,把CommandText属性设为数据表名称 11 Command 对象的主要方法对象的主要方法ExecuteReader方法:执行返回数据集的Select语句,返回一个 DataReader 对象ExecuteScalar方法:只返回结果集中第一行的第一列,常用于SQL语句的聚集函数。 ExecuteNonQuery方法:执行不返回结果的命令,常用于记录的插入、删除、更新等操作12创建和
9、执行Command对象举例例1:使用ExecuteScalar方法private void button1_Click(object sender, EventArgs e) string constr = server=(local);database=学生管理数据库; uid=sa;pwd=123; SqlConnection con = new SqlConnection(constr); con.Open(); string sqlstr = select count(*) from student; SqlCommand cmd = new SqlCommand(sqlstr, co
10、n); int count = Convert.ToInt32(cmd.ExecuteScalar(); textBox1.Text = count.ToString(); con.Close(); SqlCommand cmd = new SqlCommand(); cmd.CommandType = CommandType.Text;cmd.CommandText = sqlstr;cmd.Connection = con;13创建和执行Command对象举例例2:使用ExecuteNonQuery方法private void button2_Click(object sender, Ev
11、entArgs e) string constr = server=(local);database=学生管理数据库; uid=sa;pwd=123; SqlConnection con = new SqlConnection(constr); string sqlstr = update student set sname=徐飞 where sno=95011; SqlCommand cmd = new SqlCommand(sqlstr, con); cmd.Connection.Open(); textBox2.Text=Convert.ToString(cmd.ExecuteNonQu
12、ery(); con.Close();149.2.3 DataReader对象对象 DataReader 对象是一个简单的数据集,用于从数据源中检索只读、只向前数据流。 它通过Command对象的ExecuteReader方法创建 使用 DataReader 对象的 Read 方法可从查询结果中获取行 返回行的每一列值的方法 通过向 DataReader 传递列的名称或序号引用 调用GetDateTime、GetDouble、GetGuid、GetInt32 等方法15举例:DataReader的使用 string consql = server=(local);database= 学生管理数
13、据库; uid=sa;pwd=123; SqlConnection con = new SqlConnection(consql); string sql=select * from student where sno=+textBox1.Text+; SqlCommand com=new SqlCommand(sql,con); con.Open(); SqlDataReader sdr = com.ExecuteReader(); while (sdr.Read() textBox2.Text = sdrsname.ToString(); sdr.Close(); con.Close();
14、textBox2.Text = sdr.GetString(1);169.2.4 DataAdapter对象对象 它是DataSet对象和数据源之间的一个桥梁,用于从数据源中检索数据、填充 DataSet对象中的表及对DataSet对象做出的更改提交回数据源 它使用Command对象从数据源中检索数据并将更改提交回数据源,Command对象体现在DataAdapter的SelectCommand、InsertCommand、UpdateCommand 和 DeleteCommand 属性上。 它的 Fill 方法用于在DataSet中添加或刷新行以匹配数据源中的行。 179.2.5 DataS
15、et对象 1. 数据集 (1)表示相关表、约束和表间关系在内的数据集合(2)相关对象: DataSet、DataTable、DataColumn、Constraint、DataRelation、DataRow。 DataSet 类包含数据表的集合Tables和DataRelation 对象的集合Relations。 DataTable类包含表行的集合Rows、数据列的集合Columns和数据关系的集合ChildRelations 和ParentRelations。 182. 填充数据集填充数据集(1)填充数据集的方法:)填充数据集的方法:调用调用DataAdapter对象的对象的Fill方法。
16、方法。通过创建通过创建 DataRow 对象并将它们添加到表的对象并将它们添加到表的Rows集集合,手动填充数据集中的表。合,手动填充数据集中的表。 将将XML文档或流读入数据集。文档或流读入数据集。合并(复制)另一个数据集的内容。合并(复制)另一个数据集的内容。例例 调用调用DataAdapter对象的对象的Fill方法填充数据集方法填充数据集SqlConnection con = new SqlConnection(server=(local);database= 学生管理数据库学生管理数据库; uid=sa;pwd=123);con.Open();SqlDataAdapter sdr=
17、new SqlDataAdapter(select * from sc,con);DataSet ds = new DataSet();sdr.Fill(ds, “sc1);dataGridView1.datasource=ds.Tables0con.Close(); dataGridView1.DataMember = sc1;dataGridView1.DataSource = ds;193访问数据集访问数据集直接使用对象访问数据集中的数据。DataSet对象的数据表集合Tables,DataTable对象的数据行集合Rows、数据列集合Columns。 例如,访问sc数据表的第四行数据的
18、grade列的值ds.Tables“sc”.Rows3“grade”;4更新数据集更新数据集(1)添加数据)添加数据DataRow row= ds.Tablessc.NewRow(); rowSno = 112; rowcno = C03; rowgrade = 100; ds.Tablessc.Rows.Add(row);(2)删除数据)删除数据调用数据行的调用数据行的Delete方法,例如:方法,例如:ds.Tablessc.Rows4.Delete();(3)修改数据)修改数据ds.Tablessc.Rows3grade = 100;(4)更新数据源)更新数据源从数据集更新数据源。使用从
19、数据集更新数据源。使用DataAdapter对象的对象的Update方法完成。方法完成。 sdr. Update(ds, sc);SqlCommandBuilder build = new SqlCommandBuilder(adapter);20l运行存储过程运行存储过程l通过传入的存储过程的名称来执行存储过程,如果有返回通过传入的存储过程的名称来执行存储过程,如果有返回结果的话,把返回的记录集放到结果的话,把返回的记录集放到DataSet里面:里面: SqlCommand cm=new SqlCommand(); cm.Connection= cm.CommandText=StoredPr
20、ocedureName; cm.CommandType=CommandType.StoredProcedure; SqlDataAdapter da=new SqlDataAdapter(cm); DataSet DS=new DataSet(); da.Fill(DS);9.3 存储过程(续)存储过程(续)21l存储过程执行完毕,如果有存储过程执行完毕,如果有output类型的参数,类型的参数,可按下面方法取回参数值可按下面方法取回参数值l按序号返回参数值,一般在执行完存储过程按序号返回参数值,一般在执行完存储过程后使用后使用 cm.ParametersParameterIndex.Valu
21、e.ToString();l 按名称返回参数值按名称返回参数值 cm.ParametersParameterName.Value.ToString();9.4 存储过程(续)存储过程(续)22例例1: 在Microsoft SQL Server 学生管理数据库中,创建存储过程Student_Sname ,并用Command对象执行该存储过程(1)创建存储过程Student_Sname ,它完成检索student数据表中性别为no的学生姓名,其中no是存储过程的一个参数。 CREATE PROCEDURE Student_Sname no char(10)AS SELECT sname FROM
22、 student WHERE sno=noGO 23string str = server=(local);database=学生管理数据库; uid=sa;pwd=123; SqlConnection Con = new SqlConnection(str);SqlCommand Com = new SqlCommand();Com.Connection=Con;Com.CommandType = CommandType.StoredProcedure;Com.CommandText = Student_Sname ; Com.Parameters.Add(no,SqlDbType. Cha
23、r,10); /添加存储过程的参数 Com.Parameters“no”.Value= textBox1.Text; /赋值Con.Open();SqlDataReader rd = Com.ExecuteReader();while (rd.Read()listBox1.Items.Add(rd“sname”.ToString(); rd.Close();Con.Close();Com.Parameters.AddWithValue(“no, textBox1.Text);24例2:带输出参数的存储过程调用create proc S_countxb char(10),rs int outpu
24、tasselect rs=count(*)from studentwhere sdept=xbstring str = server=(local);database=学生管理数据库; uid=sa;pwd=123456; SqlConnection Con = new SqlConnection(str);SqlCommand Com = new SqlCommand();Com.Connection = Con;Com.CommandType = CommandType.StoredProcedure; Com.CommandText = S_count; Com.Parameters.AddWithValue(xb, textBox1.Text); Com.Parameters.Add(rs, SqlDbType.Int); Com.Parametersrs.Direction = ParameterDirection.Output; Con.Open(); Com.Exec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科研经费支持下的专利转化效率评价
- 科研档案管理在医学前沿领域的资源共享
- 私域流量在医疗健康管理中的应用
- 护理信息化与智慧医疗
- 护理临床实践:胃管插管的技巧与禁忌
- 护理沟通中的问题解决技巧
- 监测术语与预警模型的接口设计
- 病理学数字切片的交互式学习工具研究
- 疫情下的医疗资源紧急调配伦理
- 电子病历数据安全共享与隐私保护策略
- 防水补漏安全培训内容课件
- 传动轴的支撑套筒加工工艺与夹具设计
- 消防公共安全培训演练课件
- 煤巷锚杆支护理论与成套技术
- 城市防洪工程建设2025年社会稳定风险评估与风险评价报告
- GB/T 3672.1-2025橡胶制品的公差第1部分:尺寸公差
- 彩钢活动板房拆除工程详细施工方案
- 幼儿园意外伤害急救方法
- 北京大学初党练习试题附答案
- 外观检验标准培训
- 如何做好病房管理卫生
评论
0/150
提交评论