《Windows程序设计基础-基于.NET平台》课件-CORE-04_第1页
《Windows程序设计基础-基于.NET平台》课件-CORE-04_第2页
《Windows程序设计基础-基于.NET平台》课件-CORE-04_第3页
《Windows程序设计基础-基于.NET平台》课件-CORE-04_第4页
《Windows程序设计基础-基于.NET平台》课件-CORE-04_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.NET数据集&数据提供程序第四章2教学目标了解数据库访问的发展过程理解ADO.NET的工作原理掌握ADO.NET操作数据库的方法3数据访问技术的发展ODBCNativeLibraryOLEDB(DAO/RDO)ADOADO.NET4OLEDBOLEDB的数据访问序列:初始化OLE连接到数据源发出命令处理结果释放数据源对象并停止初始化OLE5OLEDBOLEDB的组件模型:DataProviders数据提供者DataConsumers数据使用者ServiceComponents服务组件执行数据提供者一级数据使用者之间数据传递的工作6ADO.NETADO.NET的核心组件:DataSet.NETFramework数据提供程序7ADO.NETADO.NET结构图8ADO.NETDataSet:设计目的独立于任何数据源的数据访问组成一个或多个DataTable对象的集合数据行、数据列、主键、外键、约束和数据的关系信息用途容纳由.NETFrameworkDataProvider获取的数据或者XML中加载的数据9ADO.NET.NETFramework数据提供程序:组件的目的实现数据操作和对数据的快速、只进、只读访问组件的用途ConnectionCommandDataReaderDataAdapter10ADO.NET.NETFramework数据提供程序:SQLServer.NETFramework数据提供程序OLEDB.NETFramework数据提供程序ODBC.NETFramework数据提供程序Oracle.NETFramework数据提供程序11ADO.NET从数据源中获取数据,并保存到DataSet。12ADO.NET只有数据提供者,不用DataSet13DataSet的结构和使用DataSet结构图DataSet的结构和使用DataTable由行和列的集合信息构成,即DataColumn集合和DataRow集合构成写入数据Rows的Add方法Add(DataRowrow);Add(Paramobject[]values);DataTabletable=newDataTable(“students”);table.Columns.Add(newDataColumn(“Name”,typeof(string)));table.Columns.Add(newDataColumn(“Age”,typeof(int)));DataTabletable=newDataTable(“students”);table.Columns.Add(newDataColumn(“Name”,typeof(string)));table.Columns.Add(newDataColumn(“Age”,typeof(int)));DataRowrow=table.NewRow();row[“Name“]=“Neo”; row[“Age”]=27;table.Rows.Add(row); table.Rows.Add(newobjects[]{“Neo”,27});DataSet的结构和使用Relations表示两个DataTable对象之间的父/子关系,关系数据库的数据源的table之间的约束关系//定义关系对的父值DataColumnparent=DataSet1.Tables[“Customers”].Columns[“CustID”];//定义关系对的子值DataColumnchild=DataSet1.Tables[“Orders”].Columns[“CustID”];//定义关系DataRelationrelCustOrder=newDataRelation(“CustomersOrders”,parent,child);//将关系添加入到DataSet中DataSet1.Relations.Add(relCustOrder);DataSet的结构和使用ExtendProperties代表一些用户自定义的描述信息例如:存入数据的过期时间DataSet1.ExtendProperties.Add(“ExpiredTime”,DateTime.Now.Add(newTimeSpan(0,1,0,0)));17SQLServer数据提供程序的使用SqlConnection创建SqlConnection对象SqlConnectionconn=newSqlConnection(“DataSource=jy;InitialCatalog=EBuy;IntegratedSecurity=True”);连接字符串DataSource:指明服务器,机器域名或IP地址InitialCatalog:数据库的名字IntegratedSecurity:连接使用用户的Windows登录UserID:SQLServer中的用户名Password:SQLServer中的用户名匹配的密码18SQLServer数据提供程序的使用例:SqlConnectionconn=newSqlConnection(“DataSource=…;InitialCatalog=…;UserId=…;Password=…”);也可以直接实例化一个SqlConnection对象,然后用ConnectionString属性初始化该对象SqlConnectionconn=newSqlConnection();conn.connectionstring=“DataSource=…;InitialCatalog=…;UserId=…;Password=…”;打开:Open关闭:Close19SQLServer数据提供程序的使用SqlCommand创建SqlCommand对象SqlCommandcmd=newSqlCommand(“select*fromcustomer”,conn);SqlCommandcmd=newSqlCommand(); mandText=“select*fromcustomer”; cmd.CommandType=CommandType.Text; cmd.Connection=conn;TableDirect:直接的表操作StoredProcedure:存储过程命令Text:文本命令(一般是构造的SQL命令)20SQLServer数据提供程序的使用SqlCommandSqlCommand的参数SqlCommandcmd=newSqlCommand(); mandText=“selectnamefromCategorieswhereCategoryId=@CategoryId”; cmd.CommandType=CommandType.Text; SqlParameterparamID=newSqlParameter(“@CategoryId”,SqlDbT); paramID.Value=m_Id; cmd.Parameters.Add(paramID); cmd.Connection=conn;21SQLServer数据提供程序的使用SqlCommand查询数据使用SQL的select命令会得到一组数据集,应该使用SqlCommand对象的ExecuteReader方法SqlCommandcmd=newSqlCommand(“selectCategoryNamefromCategories”,conn); SqlDataReaderrdr=cmd.ExecuteReader(); stringmyvalue=rdr.Getstring(2); 22SQLServer数据提供程序的使用SqlCommand插入数据使用SqlCommand对象的ExecuteNonQuery方法stringinsertstring=@”insertintoCategories(CategoryName,Description)values(‘Miscellaneous’,’Whatever’)”; SqlCommandcmd=newSqlCommand(insertstring,conn); cmd.ExecuteNonQuery();23SQLServer数据提供程序的使用SqlCommand更新数据使用SqlCommand对象的ExecuteNonQuery方法,用于执行一个无返回值的sql查询stringupdatestring=@”updateCategoriessetCategoryName=‘other’whereCategoryName=‘Miscellaneous’”; SqlCommandcmd=newSqlCommand(updatestring); cmd.Connection=conn; cmd.ExecuteNonQuery();24SQLServer数据提供程序的使用SqlCommand删除数据使用SqlCommand对象的ExecuteNonQuery方法stringdeletestring=@”deletefromCategorieswhereCategoryName=‘other’; SqlCommandcmd=newSqlCommand(); cmd.CommandText=deletestring; cmd.Connection=conn; cmd.ExecuteNonQuery();25SQLServer数据提供程序的使用SqlCommand得到单一值使用SqlCommand对象的ExecuteScalar方法,能让数据库执行并且只返回你所需要的单独值SqlCommandcmd=newSqlCommand(“selectcount(*)fromCategories”,conn); intcount=(int)cmd.ExecuteScalar();26SQLServer数据提供程序的使用SqlDataReader创建SqlDataReader对象SqlDataReaderdr=cmd.ExecuteReader();读取数据快速只向前,只读一遍while(rdr.read()){ stringcontact=(string)rdr[“ContactName”]; stringcompany=(string)rdr[“companyName”]; Console.Write(“{0,-25}”,contact); Console.Write(“{0,-25}”,company);}27SQLServer数据提供程序的使用SqlDataAdapter管理与数据源的连接(DataSet只存储数据而不与数据源发生交互)例如:当data填充数据的时候打开连接将数据加载到DataSet中关闭连接28SQLServer数据提供程序的使用SqlDataAdapter得到SqlDataAdapter的实例使用SQL命令和连接对象来读写数据SqlDataAdapterCustomers=newSqlDataAdapter(“selectCustomerID,CustomerNamefromCustomers”,conn); select语句指明了将哪些数据读入数据集SqlCommandecmd=newSqlCommand(“selectCustomerID,CustomerNamefromCustomers”,conn); SqlDataAdapterCustomers=newSqlDataAdapter(cmd);29SQLServer数据提供程序的使用SqlDataAdapter用SqlDataAdapter获取数据一旦初始化号SqlDataAdapter,就可以调用其Fill方法将需要的数据加载到DataSetSqlConnectionconn=newSqlConnection("DataSource=YourSqlServer;

InitialCatalog=YourDataBase;UserID=YourID;Password=YourPassword");SqlCommandcmd=newSqlCommand("select*fromCustomers",conn);SqlDataAdapterda=newSqlDataAdapter(cmd);DataSetds=newDataSet();using(conn){conn.Open();da.Fill(ds);conn.Close();}30SQLServer数据提供程序的使用SqlDataAdapter使用SqlDataAdapter更新数据源31SQLServer数据提供程序的使用事务的处理使用SqlTransaction需要从连接对象中获取事物:SqlTransactiontrans=conn.BeginTransaction();获取事物后,把需要事物处理的操作包括到事物之中SqlConnectionconn=newSqlConnection();SqlCommandcmd=newSqlCommand(conn,“…");SqlDataAdapterda=newSqlDataAdapter(cmd);InitSqlDataAdapter(da,conn,);DataSetds=newDataSet();conn.Open();SqlTransactiontrans=conn.BeginTransaction();da.Fill(ds);try{UpdateDataSource(d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论