1、.NET编程基础,中央广播电视大学计算机课程,1、.NET编程基础教材2、.NET编程基础实验教材3、.NET编程基础IP课件,课程使用的媒体,一、课程相关说明二、基础概念三、ADO.NET相关概念,教材内容的选择开发工具课程难点重点实验说明,教材内容,微软MCAD考试70-305的结构ASP.NET+ADO.NET+.NET框架下的VB编程。本课程:.NET框架下的VB编程+ADO.NETWeb数据库设计与应用:ASP.NET.NET框架的基础知识ADO.NET技术其他相关内容面向对象、.NET下的Windows开发、ASP.NET、WEB服务,开发工具,VisualStudio.NET记事
2、本或其他文本编辑器基于Windows应用,课程重点难点分析,前14章概念居多需要理解第57章操作内容多需要重点掌握第811了解内容多难度较大,实验说明,本课程实用性强,实验的比重大实验内容实验13:通过实验理解概念实验46:通过实验掌握文件和目录操作、数据库的访问与修改(重点)实验79:通过实验了解相关知识,一、课程相关说明二、基础概念三、ADO.NET相关概念,1.NET框架结构2命名空间3通用类型系统4类、对象、实例5基本文件类,1.NET框架结构2命名空间3通用类型系统4类、对象、实例5基本文件类,命名空间就是.NET框架中相关类和其他命名空间的集合,它使用一种句号分隔的命名结构,将逻辑
3、上相关的类组织到一起,便于查找和引用,1.NET框架结构2命名空间3通用类型系统4类、对象、实例5基本文件类,通用类型系统支持值类型和引用类型,搞清楚“值”和“引用”,图书馆的索引卡片网站的链接商店里电视机的标签,引用:卡片值:书,引用:链接地址值:网页,引用:标签值:电视机,值类型与引用类型的区别,(1)包含内容值类型包含的是数据引用类型包含的是指向对象实例的引用或指针,(2)操作影响对一个值类型变量的操作不会影响另外一个变量对一个引用变量的操作会影响其他引用变量,通用类型系统架构,1.NET框架结构2命名空间3通用类型系统4类、对象、实例5基本文件类,定义,类(Class)是对某一类事物的
4、描述,是抽象的、概念上的定义;对象(Object)是实际存在的该类事物的个性,也称实例(Instance),类比,在VS.NET中,工具箱上的控件表示类。控件从工具箱拖放到窗体,就是在创建一个对象,即类的一个实例。,类是一种引用类型,类是引用类型,封装数据和行为。类描述对象的字段、属性、方法和事件。对象是类的实例,创建一个类后,可以创建所需的任何数量的对象。,Dimmyobj1asNewClass1()Dimmyobj2asClass1()myobj2=myobj1,Dimmyobj1asNewClass1(),Dimmyobj2asClass1(),myobj2=myobj1,1.NET框架
5、结构2命名空间3通用类型系统4类、对象、实例5基本文件类,System.IO提供的FileSystemInfo,(1)文件类的结构,(2)FileSystemInfo基类,FileSystemInfo是一个抽象类具体编程时打交道的是DirectoryInfo和FileInfo类,(3)Directory和DirectoryInfo类,Directory类提供静态方法重点学习的方法GetDirectories方法GetFiles方法,DirectoryInfo.GetDirectories,DimthisDirAsNewDirectoryInfo(“c:”)定义DirectoryInfo目录数组
6、DimsubDrsAsDirectoryInfo()使用GetDirectories返回一组数组subDrs=thisDir.GetDirectories,Directory.GetDirectories,DimthisDirAsDirectory定义字符串数组DimsubDrsAsString()使用GetDirectories返回字符串数组subDrs=thisDir.GetDirectories(“c:”),DirectoryInfo.GetFiles,DimthisDirAsNewDirectoryInfo(“c:”)定义目录数组DimfsAsFileInfo()使用GetFiles返
7、回FileInfo数组fs=thisDir.GetFiles(“*.vb”),Directory.GetFiles,DimthisDirAsDirectory定义字符串数组DimfsAsString()使用GetFiles返回字符串数组fs=thisDir.GetFiles(“c:”,”*.vb”),(4)File和FileInfo类,File类提供静态方法Open方法的3个枚举参数FileModeFileAccessFileShare,FileMode枚举,有容错功能Append:文件不存在则自动创建Create:文件存在则覆盖OpenOrCreate:存在Open不存在Create没有容错
8、功能CreateNew:如果存在则抛出异常Open/Truncate:如果不存在则抛出异常,FileAccess枚举,Read只读Write只写ReadWrite可读可写,FileShare枚举,Read只读Write只写ReadWrite可读可写None拒绝共享,(5)目录与文件名称的指定,DirectoryInfo/FileInfo在构造函数中指定DimDrAsNewDirectoryInfo(“c:”)DimfAsNewFileInfo(“c:1.txt”),Directory/File在方法第1个参数中指定subDrs=Dr.GetDirectories(“c:”)f.Open(“c:
9、1.txt”,FileMode.Create),(6)数据流,FileStream类,CanRead/CanWrite/CanSeekRead/Write/SeekLengthClosePosition,StreamReader/StreamWriter,FileStream适合字节格式的访问StreamReader、StreamWriter适合纯文本格式访问StreamReader的方法Peek,Read,ReadLine,ReadToEnd,CloseStreamWriter的方法Write,WriteLine,Flush,一、课程相关说明二、基础概念三、ADO.NET相关概念,1ADO.
10、NET架构2连接(Connection)3使用DataReader4数据集(DataSet)5操作XML6修改数据,1ADO.NET架构,命令Command,数据适配器DataAdapter,数据阅读器DataReader,数据集DataSet,数据库,连接,1ADO.NET架构2连接(Connection)3使用DataReader4数据集(DataSet)5操作XML6修改数据,2连接Connection,使用SqlConnection使用OleDbConnection,DimmySqlConnectionAsNewSqlConnection(server=(local)NetSDK;Tr
11、usted_Connection=yes;database=northwind),DimmyOleDbConnectionAsNewOleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:myPathMyDatabase.MDB),1ADO.NET架构2连接(Connection)3使用DataReader4数据集(DataSet)5操作XML6修改数据,3使用DataReader(1),(1)创建一个连接对象(2)创建一个包含相应数据库查询语句的命令对象DimcmdAsNewSqlCommand(select*fromcu
12、stomers,cnNorthwind)(3)打开该连接对象,3使用DataReader(2),(4)执行命令对象的ExecuteReader方法DimdrCustomersAsSqlDataReader=cmd.ExecuteReader(5)使用DataReader的Read方法循环读取数据记(6)关闭命令和连接,1ADO.NET架构2连接(Connection)3使用DataReader4数据集(DataSet)5操作XML6修改数据,4数据集(DataSet),(1)DataSet架构(2)数据表DataTable(3)使用数据适配器DataAdapter(4)关系DataRelati
13、on,(1)数据集DataSet架构,概念:数据集(DataSet),与关系数据库相似的对象模型保存数据:表DataTable行DataRow列DataColumn可以在数据集中定义约束条件与关联DataRelation,概念:数据表(DataTable),代表了数据集中的表,可以从数据源加载数据由数据列DataColum组成可以通过数据行DataRow获取指定记录,概念:数据列(DataColumn),由DataType属性指定对应的数据类型需要保持数据列的数据类型与数据库列的类型匹配,(2)数据表,创建数据表使用Columns使用Rows,(a)创建数据表,创建单独的数据表对象DimdtC
14、ustomersasDataTabledtCustomers=NewDataTable()NothingdtCustomers.TableName=Customers在数据集中创建数据表MyDataSet.Tables.Add()TableNMyDataSet.Tables.Add(“Customers”),(b)使用数据表的列Columns,定义列nameDimdcAsNewDataColumn(name)dc.DataType=System.Type.GetType(System.String)定义name列的计算表达式dc.Expression=firstname+,+lastname添
15、加列dt.Columns.Add(dc),(c)使用数据表的行Rows,DimdtAsDataTable=NewDataTable(myEmployees)DimdrasDataRow=dt.Rows(0)Dr.Item(1)Dr.Item(“FirstName”)Dr(“FirstName”),(3)使用DataAdatper获取数据,(1)创建一个连接对象(2)创建一个包含相应数据库查询语句的DataAdapter对象DimmySqlDataAdapterAsNewSqlDataAdapter(select*fromcustomers,mySqlConnection),使用DataAdat
16、per获取数据(2),(3)创建一个数据集DimmyDataSetAsNewDataSet()(4)执行DataAdapter对象的Fill方法将查询结果添加到数据集中mySqlDataAdapter.Fill(myDataSet,Customers)(5)对数据集执行相应的操作(6)关闭连接,(4)DataRelation,在DataSet中添加基于Customers表和Orders表的DataRelation对象Dimdr1AsNewDataRelation(FK_CustomersOrders,_DataSet11.Customers.Columns(CustomerId),DataSe
17、t11.Orders.Columns(CustomerId)DataSet11.Relations.Add(dr1),操作主从表,DimdrCustomerAsDataRowDimdrOrderAsDataRowdrCustomer=dsNorthwind.Tables(Customer).Rows(0)ForEachdrOrderIndrCustomer.GetChildRows(_FK_CustomersOrders)对子表记录进行相应处理Next,4数据集回顾,(1)DataSet架构(2)数据表DataTable(3)使用数据适配器DataAdapter(4)关系DataRelatio
18、n,1ADO.NET架构2连接(Connection)3使用DataReader4数据集(DataSet)5操作XML6修改数据,5操作XML,加载到DataSetDimdsAsNewDataSet()ds.ReadXml(c:XmlEmployees.xml)写入XML架构dsCustomers.WriteXmlSchema(c:Customers.xsd)写入XML数据dsCustomers.WriteXml(c:Customers.xml),1ADO.NET架构2连接(Connection)3使用DataReader4数据集(DataSet)5操作XML6修改数据,(1)使用Comman
19、d进行数据更新,(1)创建一个连接对象(2)创建一个包含相应数据库更新语句的命令对象(3)对该命令对象添加需要的参数并赋值(4)打开该连接对象(5)执行命令对象的ExecuteNonQuery方法(6)关闭命令和连接,创建一个包含更新语句的命令对象,DimUpdateStrAsStringUpdateStr=updateemployeessetfirstname=Fname,lastname=LnamewhereEmployeeId=ID定义执行update操作的命令对象DimcmdAsNewSqlCommand(UpdateStr,Me.SqlConnection1),对该命令对象添加需要的
20、参数并赋值,添加命令所需的参数并赋值cmd.Parameters.Add(Fname,SqlDbType.VarChar,20).Value=QIUcmd.Parameters.Add(lname,QINLUN),(2)通过DataSet添加记录,(1)新建一个数据行(2)使用NewRow方法或Add方法将新数据行添加到数据表的DataRow集合中。(3)调用DataAdapter的Update方法(4)调用DataSet的AcceptChange方法接受更改,新建数据行并添加到表中,DimdtAsDataTable=DataSet11.EmployeesDimdrAsDataRow=dt.N
21、ewRowdr(employeeid)=100dr.Item(FirstName)=Qiudr.Item(LastName)=QinLun“dt.Rows.Add(dr),(3)使用DataSet进行数据更新,(1)定位需要修改的行(2)调用BeginEdit方法开始编辑(3)对相应列值进行修改(4)调用EndEdit确认编辑或者CancelEdit取消编辑(5)执行Update方法更新数据源(6)调用AcceptChange方法接受更改,定位行,获取DataGrid1中当前行的索引号DimRecNoAsIntegerRecNo=DataGrid1.CurrentRowIndex获得当前行的D
22、ataRow对象DimdrAsDataRow=DataSet11.Employees.Rows(RecNo),编辑行,编辑当前行dr.BeginEdit()dr(FirstName)=QIUdr(LastName)=QINLUNdr.EndEdit(),更新数据源并接受更改,更新数据源SqlDataAdapter1.Update(DataSet11.Employees)接受更改DataSet11.Employees.AcceptChanges(),ADO.NET回顾,1ADO.NET架构2连接(Connection)3使用DataReader4数据集(DataSet)5操作XML6修改数据,谢谢!,