版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库设计与开发江门职业技术学院数据库设计与开发江门职业技术学院1使用C#访问数据库典型的信息系统包含两部分:1,用户界面(前台)2,数据库(后台)如何建立用户界面与数据库的链接,来形成一个简单的信息系统框架?使用C#访问数据库典型的信息系统包含两部分:如何建立用户界面2ADO.NET简介以流的形式从文件中读写数据少量数据不适用于大量数据ADO.NET简介以流的形式从文件中读写数据少量数据不适用3ADO.NET简介以流的形式从文件中读写数据少量数据不适用于大量数据中央数据库
要管理数据库,需要专门的软件应用程序RDBMSACCESSSQL-ServerORACLEADO.NET简介以流的形式从文件中读写数据少量数据不适用4ADO.NET简介中央数据库用户需要时,可以随时访问数据用户计算机向数据库服务器发送请求客户端不同的访问方法和技术ADO.NETADO.NET简介中央数据库用户需要时,可以随时访问数据用5ADO.NET简介.NETFrameworkADO.NETSystem.Data命名空间以ActiveX数据对象(ADO)为基础以XML(扩展标记语言)为格式传送和接收数据ADO.NET简介.NETFrameworkADO.N6ADO.NET
对数据库的访问(1)将数据传递到用户界面时,ADO.NET
采用XML
格式数据已缓存断开式数据结构ADO.NET对数据库的访问(1)将数据传递到用户界面时,7ADO.NET
对数据库的访问(2)对于Insert,Update,Delete等单向操作应用程序
数据库1、用Connection.Open打开数据库2、用DataAdaptor.Command或者Command.Execute执行命令3、关闭数据库Insert用InsertCommandDelete用DeleteCommandUpdate用UpdateCommandADO.NET对数据库的访问(2)对于Insert,Upd8ADO.NET
对数据库的访问(3)应用程序
数据库关闭数据库1、用Connection.Open建立连接2、用DataAdaptor.SelectCommand
执行命令DataAdaptor.Fill对于Select的双向操作
DataSetADO.NET对数据库的访问(3)应用程序关闭数据库1、9.NET数据提供程序1ConnectionCommandDataReaderDataAdapterADO.NETDataSet.NETFramework
数据提供程序1、SQLClient2、OLEDB3、Oracle4、ODBC由以下各项组成的集合:.NET数据提供程序1ConnectionCommand10.NET数据提供程序2
客户端服务器数据集2、将数据发送到数据集A、客户端修改数据集3、数据集传递给客户端B、将修改后的数据集传递给服务器1、客户端从服务器请求数据1,2,3是从服务器检索数据的过程A、B是对数据库修改的过程.NET数据提供程序2客户端服务器数据集2、将数据发送11.NET数据提供程序3用于SQLServer
的.NETFramework数据提供程序System.Data.SqlClient
命名空间仅限于连接SQLServer数据库7.0
或更高版本.NET数据提供程序3用于SQLServer的.12每种.NET数据提供程序都是由以下四个对象组成:ConnectionCommandDataAdapterDataReaderC#操作SQLServer数据库的对象每种.NET数据提供程序都是由以下四个对象组成:C#操作13C#操作SQLServer数据库的步骤引入命名空间usingSystem.Data.SqlClient。定义连接串。定义SqlConnection对象,并使用Open()方法打开对数据库的连接。定义SqlCommand对象,并指定使用哪个连接对象连接到数据库。定义SqlCommand对象的命令类型。定义SqlCommand对象使用何种SQL命令。使用SQLCommand对象的方法获得数据库中的数据并放入结果集中。使用SqlDataReader对象的方法将结果集中的数据读取出来加以操作。关闭数据库连接,即调用SqlConnection的Close()方法。C#操作SQLServer数据库的步骤引入命名空间using141、为什么使用Connection应用程序数据源请求数据Connection桥梁1、为什么使用Connection应用程序数据源请求数据C15Connection主要成员必须显式关闭连接属性说明ConnectionString连接字符串state当前连接的状态方法说明Open打开数据库连接Close关闭数据库连接Connection主要成员必须显式关闭连接属性说明Con16连接数据库步骤连接数据库的步骤:1、定义连接字符串2、创建Connection对象3、打开与数据库的连接DataSource=服务器名;InitialCatalog=数据库名;UserID=用户名;Pwd=密码SqlConnectionconnection=newSqlConnection(connString);连接字符串connection.Open();没有用户名和密码,可省略连接数据库步骤连接数据库的步骤:2、创建Connectio17示例1代码分析//数据库连接字符串stringconnString="DataSource=.;InitialCatalog=MySchool;UserID=sa";//创建
Connection对象SqlConnectionconnection=newSqlConnection(connString);
//打开数据库连接connection.Open();MessageBox.Show("打开数据库连接成功");
//关闭数据库连接connection.Close();MessageBox.Show("关闭数据库连接成功");表示本机示例1代码分析//数据库连接字符串表示本机182、为什么使用Command应用程序打开数据库处理数据……数据源Connection?怎样处理数据Command执行命令并从数据源中返回结果2、为什么使用Command应用程序数据源Connecti19Command的主要成员属性说明ConnectionCommand对象使用的数据库连接CommandText执行的SQL语句方法说明
ExecuteNonQuery执行命令但不返回任何结果集,一般用于InsertUpdataDelete等ExecuteReader返回DataReader对象,一般用于Select等返回结果集的SQL语句ExecuteScalar返回单个值,返回结果集中第一行的第一列,如执行COUNT(*)Command的主要成员属性说明ConnectionCo20使用Command步骤使用Command步骤:1、创建数据库连接2、定义SQL语句3、创建Command对象4、执行命令SqlConnectionconnection=newSqlConnection(connString);stringsql="SELECTCOUNT(*)FROMStudent";connection.Open();//打开数据库连接SqlCommandcommand=newSqlCommand(sql,connection);intnum=(int)command.ExecuteScalar();执行命令前,必须打开数据库连接!要进行类型转换!使用Command步骤使用Command步骤:SqlCo213、为什么使用DataSet对象应用程序大量的数据来自多个数据源大批量的查询、修改数据怎么办?想在断开数据库连接的情况下操所数据怎么办?使用DataSet对象DataSet数据库3、为什么使用DataSet对象应用程序大批量的查询、22什么是DataSet对象DataSet数据集简单理解为一个临时数据库将数据源的数据保存在内存中独立于任何数据库工厂的仓库车间的临时仓库生产线数据源DataSet应用程序驻留于内存,临时存储数据类似什么是DataSet对象DataSet数据集工厂的仓库23DataSet的基本结构1DataSetDataTableDataColumnCollectionDataRowCollectionDataColumnDataRowDataTableCollection数据集数据表的集合数据表数据列的集合数据行的集合数据列数据行DataSet的基本结构1DataSetDataTable24DataSet的基本结构2GradeTableClassTableStudentTableidnameclasssex1小菲5女2小薇3女3小强6男DataTableCollection数据表集合DataTable数据表DataRowCollection数据行集合DataRow数据行DataColumnCollection数据列集合DataColumn数据列DataSet的基本结构2GradeTableClassT25数据集的工作原理数据集发送数据修改数据集传递数据提交修改后的数据请求数据客户端数据集的工作原理数据集发送数据修改数据集传递数据提交修改后的26如何创建DataSet对象创建一个DataSet可以指定一个数据集的名称如果不指定名称,则默认被设为"NewDataSet"DataSetdataSet=newDataSet();DataSetdataSet=newDataSet(“MySchool”);//MySchool为数据集名称DataSet数据集对象
=newDataSet("数据集的名称字符串");可选的如何创建DataSet对象创建一个DataSetDat27使用C#代码创建数据集数据集实例是由DataSet构造函数创建的数据集的名称是可选的,不需要指定如果没有指定名称,则以默认名称NewDataSet
创建数据集属性说明DataSetName用于获取或设置当前数据集的名称Tables用于检索数据集中包含的表集合方法说明Clear清除数据集中包含的所有表的所有行HasChanges返回一个布尔值,指示数据集是否更改了DataSetstuDS=newDataSet(“StudentDetails");使用C#代码创建数据集数据集实例是由DataSet构28DataTable、DataColumn和DataRow1数据集中的数据以DataTable对象的形式存储DataTable类属于System.Data命名空间属性说明Columns表示列的集合或DataTable包含的DataColumnConstraints表示特定DataTable的约束集合DataSet表示DataTable所属的数据集PrimaryKey表示作为DataTable主键的字段或DataColumnRows表示行的集合或DataTable包含的DataRowHasChanges返回一个布尔值,指示数据集是否更改了DataTable、DataColumn和DataRow1数29方法说明AcceptChanges提交对该表所做的所有修改NewRow添加新的DataRow事件说明ColumnChanged修改该列中的值时激发该事件RowChanged成功编辑行后激发该事件RowDeleted成功删除行时激发该事件DataTable、DataColumn和DataRow2方法说明AcceptChanges提交对该表所做的所有修改N30DataTable、DataColumn和DataRow3DataTableobjStuTable=newDataTable("Student");创建DataTable
对象的实例DataSetstuDS=newDataSet();DataTableobjStuTable=stuDS.Tables.Add("Student");创建DataTable
的实例,然后将其添加到数据集的Tables
集合中DataTable、DataColumn和DataRow3D31DataTable、DataColumn和DataRow4DataColumn
对象定义DataTable
的列DataTable
的
Columns
属性含有对DataColumn
对象的引用属性说明AllowDBNull表示一个值,指示对于该表中的行,此列是否允许null值ColumnName表示指定DataColumn的名称DataType表示指定DataColumn对象中存储的数据类型DefaultValue表示新建行时该列的默认值Table表示DataColumn所属的DataTable的名称Unique表示DataColumn的值是否必须是唯一的DataTableobjStuTable=newDataTable("Student");DataColumnobjStuNumber=objStuTable.Columns.Add
("StuNo",typeof(Int32));objStuNumber.AllowDBNull=false;objStuNumber.DefaultValue=12;objStuTable.Columns.Add("StuName",typeof(string));objStuTable.Columns.Add("StuMarks",typeof(Double));使用多个DataColumn
对象创建DataTableDataTable、DataColumn和DataRow4D32DataTable、DataColumn和DataRow5DataRow对象表示DataTable中的实际数据属性说明Item表示DataRow的指定列中存储的值RowState表示行的当前状态Table表示用于创建DataRow的DataTable的名称方法说明AcceptChanges用于提交自上次调用了AcceptChanges之后对该行所做的所有修改DeleteDeletestheDataRow用于删除DataRowRejectChanges用于拒绝自上次调用了AcceptChanges之后对DataRow所做的所有修改//定义表结构,为Student表添加学号、姓名、分数三列DataTableobjStuTable=newDataTable("Student");DataColumnobjStuNumber=newDataColumn();objStuNumber.DataType=objStuTable.Columns.Add
("StuNo",typeof(string));objStuNumber.AllowDBNull=false;objStuNumber.DefaultValue=12;objStuTable.Columns.Add("StuName",typeof(string));objStuTable.Columns.Add("StuMarks",typeof(Double));//向表中填充数据DataRowobjStuRow;objStuRow=objStuTable.NewRow();objStuRow["StuNo"]=99;objStuRow[“StuName”]=“王鹰";objStuRow["StuMarks"]=95;objStuTable.Rows.Add(objStuRow);在DataTable
对象中新建DataRowDataTable、DataColumn和DataRow5D33定义主键表中的主键用于对记录进行唯一标识DataTable
的PrimaryKey
属性接受含有一个或多个DataColumn
对象的数组objStuTable.PrimaryKey=newDataColumn[]{objStuTable.Columns["StuNo"]};设置单个列为DataTable
的主键objStuTable.PrimaryKey=newDataColumn[
]{ objStuTable.Columns["StuNo"], objStuTable.Columns["StuName"]};为DataTable
对象设置复合主键定义主键表中的主键用于对记录进行唯一标识objStuTabl34DataTable
的约束Constraint是对表中数据施加的限制或规则集决定表中可以存储的数据用于维护数据的正确性和有效性约束的类型ForeignKeyConstraintUniqueConstraintDataTable的约束Constraint是对表中数据施35DataViewDataView用作DataTable
中存储的数据的表示层提供对DataTable
进行排序、筛选和搜索的自定义视图允许WinForms控件进行数据绑定可用于查看DataTable中存储的数据的子集数据绑定是为了在控件上显示数据库表中存储的数据,而将应用程序的控件与数据表的行进行绑定的过程属性说明Item用于从指定的表中获取一行数据RowFilter用于获取或设置表达式,该表达式用于筛选可以在DataView中查看的行RowStateFilter用于获取DataView的行状态筛选器Table用于表示源DataTable方法说明AddNew向DataView添加新行Delete用于删除指定索引处的行DataViewobjStuView=newDataView(objStuTable);objStuView.RowFilter="StuMarks>60";for(inti=0;i<objStuView.Count;i++){MessageBox.Show(objStuView[i]["StuNo"].ToString());}创建DataView
并对该视图应用某种筛选器DataViewDataView用作DataTable中364、为什么使用DataAdapter如何将数据库的数据放在DataSet中?DataSet数据集DataAdapter数据库DataSet数据集Connection数据库连接DataAdapter数据适配器数据库4、为什么使用DataAdapter如何将数据库的数据放在37如何填充数据集使用DataAdapter对象填充数据集DataSet数据集使用
Fill()方法填充DataSet中的表使用
Connection连接数据源Connection数据库DataAdapter的Fill()方法如何填充数据集使用DataAdapter对象填充数据集38填充数据集SqlDataAdapter对象名
=
newSqlDataAdapter(查询用sql语句,数据库连接);创建SqlDataAdapter对象1DataAdapter对象.Fill(数据集对象,"数据表名称字符串");填充DataSet2填充数据集SqlDataAdapter对象名=创建39如何保存DataSet中的数据把数据集中修改过的数据提交到数据源DataSet数据集数据库dataAdapter.Update(dataSet,"Teacher");DataAdapter的Update()方法调用前,要先设置更新需要的相关命令可以使用SqlCommandBuilder对象Connection如何保存DataSet中的数据把数据集中修改过的数据提40DataAdapter对象小结DataAdapter的主要属性和方法属性说明SelectCommand从数据库检索数据的Command对象方法说明Fill向DataSet中的表填充数据Update将DataSet中的数据提交到数据库DataAdapter对象小结DataAdapter的主41SQLDataAdapter它设计为使用MicrosoftSQLServer7或更高版本提供最佳通信该适配器在数据集和MicrosoftSQLServer之间起桥梁作用,提供用于保存和检索数据的接口与SqlConnection和SqlCommand相互配合使用SqlConnectionobjSqlConn=newSqlConnection
("SERVER=MYSERVER;database=Students;uid=sa;
password=playware");
SqlDataAdapterobjSqlAdapter=newSqlDataAdapter("SELECT*
fromStudent",objSqlConn);objSqlConn.Open();DataSetobjDS=newDataSet();objSqlAdapter.Fill(objDS,"Student");创建与SQLServer数据库的连接,并用相应的值填充数据集SQLDataAdapter它设计为使用Microsoft425、为什么使用DataReader应用程序毛毛,浙江水专,优秀毛毛姓名:学校:浙江水专成绩:优秀DataReader怎样读取数据库的数据?使用DataReader对象,每次读取一行数据数据库5、为什么使用DataReader应用程序毛毛,浙江43示例1代码分析关键代码回顾://执行查询SqlDataReaderdataReader=command.ExecuteReader();stringgradeName="";//年级名称//循环读出所有的年级名,并添加到年级列表框中while(dataReader.Read()){gradeName=(string)dataReader[0];cboGrade.Items.Add(gradeName);}dataReader.Close();循环读取数据行添加到组合框中示例1代码分析关键代码回顾://执行查询循环读取数据行44DataReader的主要成员属性说明HasRows是否返回了结果方法说明
Read前进到下一行记录Close关闭DataReader对象DataReader的主要成员:DataReader的主要成员属性说明HasRows是否45DataReader使用步骤小结使用DataReader检索数据的步骤:1、创建Command对象2、调用ExecuteReader()
创建DataReader对象3、使用DataReader的Read()
方法逐行读取数据4、读取某列的数据,(type)dataReader[]5、关闭
DataReader对象获取某列的值:方法一:指定列的索引,从0开始方法二:指定列名注意:DataReader使用后必须关闭DataReader使用步骤小结使用DataReader46小结编写控制台程序,从Student表中,读取出所有姓“李”学员的姓名stringsql="SELECTStudentNameFROMStudent
WHEREStudentNameLIKE'李%'";SqlCommandcommand=newSqlCommand(sql,connection);connection.Open();SqlDataReaderdataReader=command.ExecuteReader();Console.WriteLine("查询结果:");while(dataReader.Read()){Console.WriteLine((string)dataReader["StudentName"]);}dataReader.Close();小结编写控制台程序,从Student表中,读取出所有姓“李”47操作数据应用程序毛毛,浙江水专,良好毛毛姓名:学校:浙江水专成绩:良好ExecuteNonQuery如何对数据库的数据进行增删改?使用ExecuteNonQuery()方法数据库操作数据应用程序毛毛,浙江水专,良好毛毛姓名:学48示例2代码分析关键代码回顾://创建command对象SqlCommandcommand=newSqlCommand(sql,DBHelper.connection);//打开数据库连接DBHelper.connection.Open();//执行命令intresult=command.ExecuteNonQuery();……返回受影响记录的行数示例2代码分析关键代码回顾://创建command对象49ExecuteNonQuery()方法小结该方法执行指定的sql语句返回受影响的行数使用ExecuteNonQuery()的步骤小结:1、创
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南衡阳教师招聘考试模拟题及答案
- 2026年荒野征程测试题及答案
- 2026年电商运营题库及答案
- 2026年工程单招考试试题及答案
- 2026年村镇建筑工匠考试试题及答案
- 2025年南网安规考试题库及答案
- 福建省南平建瓯市2025-2026学年七年级下学期期中语文试题(含答案)
- 四年级数学(上)计算题专项练习及答案
- 分布式光伏电站验收报告
- 语文版五年级语文上册期中考试卷及答案
- 2026年重大事故隐患判定标准专项培训试卷附答案
- 黑龙江省哈尔滨市2025届中考物理试卷(含答案)
- 储能行业压缩空气储能电站经济性调研报告
- 2026年高考数学北京卷试卷(含答案)
- 医院慢病管理中心建设与运营方案
- 2026年共青团培训结业考试题库(含答案)
- 2026年初级经济师之初级经济师工商管理从业资格考试真题及参考答案详解AB卷
- 公司培训基地建设方案
- 食品留样管理制度培训
- 小学项目式学习本土化实践-基于 2023 年小学项目式学习案例库
- 2026年湖北高考物理考试试题及答案
评论
0/150
提交评论