版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库设计与开发江门职业技术学院使用C#访问数据库典型的信息系统包含两部分:1,用户界面(前台)2,数据库(后台)如何建立用户界面与数据库的链接,来形成一个简单的信息系统框架?ADO.NET 简介以流的形式从文件中读写数据ADO.NET 简介以流的形式从文件中读写数据中央数据库中央数据库 要管理数据库,需要专门的软件应用程序ACCESSSQL-ServerORACLEADO.NET 简介中央数据库中央数据库用户需要时,可以随时访问数据用户计算机向数据库服务器发送请求客户端不同的访问方法和技术ADO.NET 简介.NET FrameworkSystem.Data 命名空间以 ActiveX 数据
2、对象 (ADO) 为基础以 XML(扩展标记语言)为格式传送和接收数据ADO.NET 对数据库的访问(1)将数据传递到用户界面时, ADO.NET 采用 XML 格式数据已缓存ADO.NET 对数据库的访问(2)对于Insert,Update,Delete 等单向操作 1、用Connection.Open打开数据库2、用DataAdaptor.Command或者 Command.Execute 执行命令3、关闭数据库Insert用InsertCommandDelete 用DeleteCommandUpdate用UpdateCommandADO.NET 对数据库的访问(3) 关闭数据库1、用Co
3、nnection .Open建立连接2、用DataAdaptor.SelectCommand 执行命令DataAdaptor.Fill对于对于Select的双向操作的双向操作 DataSet.NET 数据提供程序 1ConnectionCommandDataReaderDataAdapterADO.NETDataSet.NET Framework 数据提供程序数据提供程序 1、SQLClient2、OLEDB3、Oracle4、ODBC由以下各项组成的集合:.NET 数据提供程序 2 客户端服务器数据集2、将数据发送到数据集将数据发送到数据集A、客户端修改数据集客户端修改数据集3、数据集传递给
4、客户端数据集传递给客户端B、将修改后的数据将修改后的数据集传递给服务器集传递给服务器1、客户端从服务器请求数据客户端从服务器请求数据1,2,3是从服务器检索数据的过程A、B是对数据库修改的过程.NET 数据提供程序 3用于 SQL Server 的 .NET Framework 数据提供程序System.Data.SqlClient 命名空间仅限于连接 SQL Server 数据库 7.0 或更高版本每种 .NET 数据提供程序都是由以下四个对象组成: Connection Command DataAdapter DataReaderC#操作SQLServer数据库的对象C#操作SQLServ
5、er数据库的步骤1. 引入命名空间using System.Data.SqlClient。2. 定义连接串。3. 定义SqlConnection对象,并使用Open()方法打开对数据库的连接。4. 定义SqlCommand对象,并指定使用哪个连接对象连接到数据库。5. 定义SqlCommand 对象的命令类型。6. 定义SqlCommand对象使用何种SQL命令。7. 使用SQLCommand对象的方法获得数据库中的数据并放入结果集中。8. 使用SqlDataReader对象的方法将结果集中的数据读取出来加以操作。9. 关闭数据库连接,即调用SqlConnection 的Close()方法。1
6、、为什么使用 Connection应用程序应用程序请求数据请求数据Connection桥梁桥梁Connection 主要成员必须显式关闭连接必须显式关闭连接属性说明ConnectionString 连接字符串state当前连接的状态方法说明Open打开数据库连接Close关闭数据库连接连接数据库步骤连接数据库的步骤:1、定义连接字符串2、创建 Connection 对象3、打开与数据库的连接Data Source=服务器名服务器名;Initial Catalog=数据库名数据库名; User ID=用户名用户名;Pwd=密码密码SqlConnection connection = new Sq
7、lConnection(connString);连接字符串连接字符串connection.Open( );没有用户名和密码,没有用户名和密码,可省略可省略示例1 代码分析/ 数据库连接字符串数据库连接字符串string connString = Data Source= . ;Initial Catalog=MySchool;User ID=sa;/ 创建创建 Connection 对象对象SqlConnection connection = new SqlConnection(connString); / 打开数据库连接打开数据库连接connection.Open();MessageBox.
8、Show(打开数据库连接成功打开数据库连接成功); / 关闭数据库连接关闭数据库连接connection.Close();MessageBox.Show(关闭数据库连接成功关闭数据库连接成功);表示本机表示本机2、为什么使用 Command应用程序应用程序打开数据库打开数据库处理数据处理数据Connection怎样处理数据怎样处理数据执行命令并从数据源中返回结果执行命令并从数据源中返回结果 Command 的主要成员属性说明Connection Command对象使用的数据库连接CommandText执行的SQL语句方法说明 ExecuteNonQuery执行命令但不返回任何结果集,一般用于
9、Insert Updata Delete等ExecuteReader返回DataReader对象,一般用于Select等返回结果集的SQL语句ExecuteScalar返回单个值, 返回结果集中第一行的第一列,如执行COUNT(*)使用 Command 步骤使用Command步骤:1、创建数据库连接2、定义 SQL 语句3、创建 Command 对象4、执行命令SqlConnection connection = new SqlConnection(connString);string sql = SELECT COUNT(*) FROM Student;connection.Open();/
10、 打开数据库连接打开数据库连接SqlCommand command = new SqlCommand(sql, connection);int num = (int)command.ExecuteScalar();执行命令前,必须打开数据库连接!执行命令前,必须打开数据库连接!要进行类型转换!要进行类型转换!3、 为什么使用 DataSet 对象应用程序应用程序大量的数据大量的数据来自多个数据源来自多个数据源 大批量的查询、修改数据怎么办? 想在断开数据库连接的情况下操所数据怎么办?使用使用 DataSet 对象对象 什么是 DataSet 对象 DataSet 数据集 简单理解为一个临时数据
11、库 将数据源的数据保存在内存中 独立于任何数据库生产线生产线应用程序应用程序驻留于内存,驻留于内存,临时存储数据临时存储数据类似类似DataSet 的基本结构1DataSetDataTableDataColumnCollectionDataRowCollectionDataColumnDataRowDataTableCollection数据集数据集数据表的集合数据表的集合数据表数据表数据列的集合数据列的集合数据行的集合数据行的集合数据列数据列数据行数据行DataSet 的基本结构2GradeTableClassTableStudentTableidnameclasssex1小菲5女2小薇3女3
12、小强6男DataTableCollection数据表集合数据表集合DataTable数据表数据表DataRowCollection数据行集合数据行集合DataRow数据行数据行DataColumnCollection数据列集合数据列集合DataColumn数据列数据列数据集的工作原理发送数据发送数据修改数据集修改数据集传递数据传递数据提交修改后的数据提交修改后的数据请求数据请求数据客户端客户端如何创建 DataSet 对象 创建一个 DataSet 可以指定一个数据集的名称 如果不指定名称,则默认被设为NewDataSetDataSet dataSet = new DataSet();Data
13、Set dataSet = new DataSet(“MySchool”); /MySchool为数据集名称为数据集名称DataSet 数据集对象数据集对象 = new DataSet(数据集的名称字符串数据集的名称字符串);可选的可选的使用 C# 代码创建数据集 数据集实例是由 DataSet 构造函数创建的 数据集的名称是可选的,不需要指定 如果没有指定名称,则以默认名称 NewDataSet 创建数据集属性说明DataSetName 用于获取或设置当前数据集的名称Tables 用于检索数据集中包含的表集合方法说明Clear清除数据集中包含的所有表的所有行HasChanges 返回一个布尔
14、值,指示数据集是否更改了DataSet stuDS = new DataSet(“StudentDetails);DataTable、DataColumn和DataRow1 数据集中的数据以 DataTable 对象的形式存储 DataTable 类属于 System.Data 命名空间属性说明Columns 表示列的集合或 DataTable 包含的 DataColumnConstraints 表示特定 DataTable 的约束集合DataSet 表示 DataTable 所属的数据集PrimaryKey 表示作为 DataTable 主键的字段或 DataColumnRows表示行的集合
15、或 DataTable 包含的 DataRowHasChanges 返回一个布尔值,指示数据集是否更改了方法说明AcceptChanges提交对该表所做的所有修改NewRow 添加新的 DataRow事件说明ColumnChanged 修改该列中的值时激发该事件RowChanged 成功编辑行后激发该事件RowDeleted 成功删除行时激发该事件DataTable、DataColumn和DataRow2DataTable、DataColumn和DataRow3DataTable objStuTable = new DataTable(Student);创建 DataTable 对象的实例Da
16、taSet stuDS = new DataSet();DataTable objStuTable = stuDS.Tables.Add(Student);创建 DataTable 的实例,然后将其添加到数据集的 Tables 集合中DataTable、DataColumn和DataRow4 DataColumn 对象定义 DataTable 的列 DataTable 的 Columns 属性含有对 DataColumn 对象的引用属性说明AllowDBNull 表示一个值,指示对于该表中的行,此列是否允许 null 值ColumnName表示指定 DataColumn 的名称DataType
17、 表示指定 DataColumn 对象中存储的数据类型DefaultValue 表示新建行时该列的默认值Table表示 DataColumn 所属的 DataTable 的名称Unique 表示 DataColumn 的值是否必须是唯一的DataTable objStuTable = new DataTable(Student);DataColumn objStuNumber = objStuTable.Columns.Add ( StuNo ,typeof(Int32);objStuNumber.AllowDBNull = false; objStuNumber.DefaultValue =
18、 12; objStuTable.Columns.Add(StuName,typeof(string);objStuTable.Columns.Add(StuMarks,typeof(Double);使用多个 DataColumn 对象创建 DataTableDataTable、DataColumn和DataRow5 DataRow 对象表示 DataTable 中的实际数据属性说明Item表示 DataRow 的指定列中存储的值RowState 表示行的当前状态Table表示用于创建 DataRow 的 DataTable 的名称方法说明AcceptChanges 用于提交自上次调用了 Ac
19、ceptChanges 之后对该行所做的所有修改Delete Deletes the DataRow 用于删除 DataRowRejectChanges 用于拒绝自上次调用了 AcceptChanges 之后对 DataRow 所做的所有修改/定义表结构,为Student表添加学号、姓名、分数三列DataTable objStuTable = new DataTable(Student);DataColumn objStuNumber = new DataColumn(); objStuNumber.DataType = objStuTable.Columns.Add ( StuNo ,typ
20、eof(string);objStuNumber.AllowDBNull = false; objStuNumber.DefaultValue = 12; objStuTable.Columns.Add(StuName,typeof(string);objStuTable.Columns.Add(StuMarks,typeof(Double);/向表中填充数据DataRow objStuRow;objStuRow= objStuTable.NewRow();objStuRowStuNo=99;objStuRow“StuName”=“王鹰;objStuRowStuMarks=95;objStuT
21、able.Rows.Add(objStuRow);在 DataTable 对象中新建 DataRow定义主键 表中的主键用于对记录进行唯一标识 DataTable 的 PrimaryKey 属性接受含有一个或多个 DataColumn 对象的数组objStuTable.PrimaryKey = new DataColumnobjStuTable.ColumnsStuNo; 设置单个列为 DataTable 的主键objStuTable.PrimaryKey = new DataColumn objStuTable.ColumnsStuNo, objStuTable.ColumnsStuName
22、 ; 为 DataTable 对象设置复合主键DataTable 的约束Constraint是对表中数据施加的限制或规则集决定表中可以存储的数据用于维护数据的正确性和有效性用于维护数据的正确性和有效性约束的类型约束的类型ForeignKeyConstraint UniqueConstraint DataViewDataView用作 DataTable 中存储的数据的表示层提供对 DataTable 进行排序、筛选和搜索的自定义视图允许 WinForms 控件进行数据绑定可用于查看 DataTable 中存储的数据的子集数据绑定是为了在控件上显示数据库表中存储的数据,而将应用程序的控件与数据表的
23、行进行绑定的过程属性说明Item用于从指定的表中获取一行数据RowFilter 用于获取或设置表达式,该表达式用于筛选可以在 DataView 中查看的行RowStateFilter 用于获取 DataView 的行状态筛选器Table用于表示源 DataTable方法说明AddNew 向 DataView 添加新行Delete用于删除指定索引处的行DataView objStuView = new DataView(objStuTable);objStuView.RowFilter = StuMarks 60;for(int i =0; i objStuView.Count; i+)Mess
24、ageBox.Show(objStuViewiStuNo.ToString();创建 DataView 并对该视图应用某种筛选器4、为什么使用 DataAdapter 如何将数据库的数据放在 DataSet 中?数据库数据库DataSet数据集数据集Connection数据库连接数据库连接DataAdapter数据适配器数据适配器如何填充数据集 使用 DataAdapter 对象填充数据集使用使用 Fill() 方法方法填充填充 DataSet 中的表中的表使用使用 Connection 连接数据源连接数据源ConnectionDataAdapter 的的 Fill() 方法方法填充数据集Sq
25、lDataAdapter 对象名对象名 = new SqlDataAdapter(查询用查询用sql语句语句, 数据库连接数据库连接);创建创建 SqlDataAdapter 对象对象1DataAdapter对象对象. Fill(数据集对象数据集对象, 数据表名称字符串数据表名称字符串);填充填充 DataSet2如何保存 DataSet 中的数据 把数据集中修改过的数据提交到数据源dataAdapter.Update(dataSet,Teacher);DataAdapter 的的 Update() 方法方法调用前,要先设置更新需要的相关命令调用前,要先设置更新需要的相关命令可以使用可以使用
26、SqlCommandBuilder 对象对象ConnectionDataAdapter 对象小结 DataAdapter 的主要属性和方法属性说明SelectCommand 从数据库检索数据的 Command 对象方法说明Fill 向 DataSet 中的表填充数据Update将 DataSet 中的数据提交到数据库SQLDataAdapter 它设计为使用 Microsoft SQL Server 7 或更高版本提供最佳通信 该适配器在数据集和 Microsoft SQL Server 之间起桥梁作用,提供用于保存和检索数据的接口 与 SqlConnection 和 SqlCommand 相
27、互配合使用SqlConnection objSqlConn = new SqlConnection (SERVER=MYSERVER;database=Students;uid=sa; password=playware);SqlDataAdapter objSqlAdapter = new SqlDataAdapter(SELECT * from Student,objSqlConn);objSqlConn.Open();DataSet objDS = new DataSet();objSqlAdapter.Fill(objDS,Student);创建与 SQL Server 数据库的连接,
28、并用相应的值填充数据集5、为什么使用 DataReader应用程序应用程序 毛毛,毛毛,浙江水专浙江水专,优秀,优秀 毛毛毛毛姓名:姓名:学校:学校: 浙江水专浙江水专成绩:成绩: 优秀优秀 怎样读取数据库的数据?使用使用 DataReader 对象,每次读取一行数据对象,每次读取一行数据示例1 代码分析 关键代码回顾:/ 执行查询执行查询SqlDataReader dataReader = command.ExecuteReader();string gradeName = ; / 年级名称年级名称/ 循环读出所有的年级名,并添加到年级列表框中循环读出所有的年级名,并添加到年级列表框中whi
29、le (dataReader.Read() gradeName = (string)dataReader0; cboGrade.Items.Add(gradeName);dataReader.Close();循环读取数据行循环读取数据行添加到组合框中添加到组合框中DataReader 的主要成员属性说明HasRows 是否返回了结果方法说明 Read前进到下一行记录Close关闭 DataReader 对象 DataReader 的主要成员:DataReader 使用步骤小结使用 DataReader 检索数据的步骤:1、创建 Command 对象2、调用 ExecuteReader() 创建
30、 DataReader 对象3、使用 DataReader 的 Read() 方法逐行读取数据4、读取某列的数据,(type)dataReader 5、关闭 DataReader 对象获取某列的值:获取某列的值:方法一:指定列的索引,从方法一:指定列的索引,从0开始开始方法二:指定列名方法二:指定列名注意:注意:DataReader 使用后必须关闭使用后必须关闭小结编写控制台程序,从Student表中,读取出所有姓“李”学员的姓名string sql = SELECT StudentName FROM Student WHERE StudentName LIKE 李李%;SqlCommand
31、command = new SqlCommand(sql, connection);connection.Open();SqlDataReader dataReader = command.ExecuteReader();Console.WriteLine(查询结果查询结果:);while (dataReader.Read() Console.WriteLine(string)dataReaderStudentName);dataReader.Close();操作数据应用程序应用程序毛毛,浙江水专,良好毛毛,浙江水专,良好 毛毛毛毛姓名:姓名:学校:学校: 浙江水专浙江水专成绩:成绩: 良好良
32、好 如何对数据库的数据进行增删改?使用使用 ExecuteNonQuery() 方法方法示例 2 代码分析 关键代码回顾:/ 创建创建command对象对象SqlCommand command = new SqlCommand(sql, DBHelper.connection); / 打开数据库连接打开数据库连接DBHelper.connection.Open(); / 执行命令执行命令int result = command.ExecuteNonQuery(); 返回受影响记录的行数返回受影响记录的行数ExecuteNonQuery()方法小结 该方法执行指定的 sql 语句 返回受影响的行数使用使用 ExecuteNonQuery() 的步骤小结:的步骤小结:1、创建、创建 Connection 对象对象2、定义、定义sql 语句语句3、创建、创建 Command 对象对象4、执行、执行 ExecuteNonQue
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年网络安全法律法规宣传培训
- 2026年社区消防知识培训
- 老年人护理与康复医学应用
- 2025-2026学年人教版六年级下册数学应用题专项突破鸽巢问题(含答案)
- 护理服务中的用药安全宣教
- DB33-T 920-2023 红树林造林技术规程
- 牛鼻子技术护理经验交流
- 某麻纺厂档案管理细则
- 双J管留置患者的心理护理
- 妊娠期甲状腺疾病的护理实践
- 失败市场营销案例分析
- 男科疾病超声治疗应用指南
- 肿瘤终末期患者生活质量评估与提升方案
- 扶贫致富电商培训课件
- 化州介绍教学课件
- GJB2489A2023航空机载设备履历本及产品合格证编制要求
- 锅炉设备检修技术规程
- 中国国航国际化战略分析
- 上海交通大学开题报告模板
- 汽车制造质量管理与控制
- 设立供应链管理服务公司可行性研究报告
评论
0/150
提交评论