资源预览内容
第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
第9页 / 共33页
第10页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
重点内容: ADO.NET 连接数据库 读取数据 DataReader 填充数据集,第8章 ADO.NET数据库编程,一、ADO.NET,在ASP.NET应用程序中访问数据库要通过ADO.NET来实现。ADO.NET又被称为ActiveX数据对象(ActiveX Data Object),是从Web的角度对ADO进行检讨和改进的。ADO.NET 是为了因应广泛的数据控制而设计,所以使用起来比以前的ADO 更灵活有弹性,也提供了更多的功能。 ADO.NET对象模型中有五个主要的组件,分别是Connection、Command、DataSetCommand、DataSet以及DataReader。在ADO.NET对象模型中,DataSet(数据集)是最重要的对象。一般来说,一个DataSet对象就是一个记录集的集合,可以通过命令用数据集合填充DataSet对象。ADO.NET提供了记录集的所有数据库功能,包括排序,分页,过滤视图,关系,索引,和主键等。可以用XML形式保持或传输任何DataSet对象,而且无需付出任何额外的代价,因为DataSet对象本身就是按照XML格式构造。Connection、Command、DataSetCommand以及DataReader是数据操作组件(Managed Providers),负责建立联机和数据操作。数据操作组件的主要功能是作为DataSet和数据源之间的桥梁,其主要功能是负责将数据源中的数据取出后填充到DataSet数据集中,或者将数据存回数据源。,为了更好地支持断开模型,ADO.NET组件将数据访问与数据处理分离。它是通过两个主要的组件:.NET数据提供程序(data provider)和Dataset来完成这一操作的。,1、组件结构,一、ADO.NET,一、ADO.NET,1、组件结构,ADO.NET体系结构的一个核心元素是.NET数据提供程序,它是专门为数据处理以及快速地只进、只读访问数据而设计的组件。 它是包括Connection、Command、DataReader和DataAdapter对象的组件。,二、连接数据库,1、建立SQLServer数据库,(1) 打开Microsoft SQL Server Management Studio,弹出“连接到服务器”对话框,如图所示。,二、连接数据库,1、建立SQLServer数据库,(2) 读者选择合适的服务器名称和身份验证方式后,在“连接到服务器”对话框单击“连接”按钮,连接到SQL Server服务器。连接成功后,进入程序的主界面,如图所示。,二、连接数据库,1、建立SQLServer数据库,(3) 在“对象资源管理器”中右键单击“数据库”,从弹出的上下文菜单中选择“新建数据库”命令,弹出如图所示的对话框。,二、连接数据库,1、建立SQLServer数据库,(4) 在“数据库名称”中输入读者想要创建的数据库,这里输入的名称为SuperMarket,单击“确定”按钮创建SuperMarket数据库。此时读者会发现在“对象资源管理器”的“数据库”节点中增加了一个名为SuperMarket的数据库,如图所示。,二、连接数据库,1、建立SQLServer数据库,(5) 展开SuperMarket节点,右键单击“表”节点,开始进行表编辑操作,如图所示。,二、连接数据库,1、建立SQLServer数据库,(6) 在右侧的属性窗体中把表的名称改为Product,然后在编辑表的窗体中加入4列,最终结果如图所示。,(7) 右键单击“编号”列,在弹出的上下文菜单在那个选择“设置主键”命令,“编号”成为该表的主键。此时该表如图8-8所示。,二、连接数据库,1、建立SQLServer数据库,(8) 在“对象资源管理器”中右键单击SuperMarket数据库的product表,从弹出的上下文菜单中选择“打开表”命令,向表中输入记录。该表中的记录如图所示。,二、连接数据库,2、连接SQLServer数据库,SQL Server .NET Framework数据提供程序使用SqlConnection对象提供与Microsoft SQL Server的7.0版或它的更高版本的连接。SqlConnection的构造函数定义如下所示。 public SqlConnection( string connectionString ); 其中,参数connectionString指定了用于打开SQL Server数据库的连接。程序清单8.1所示的代码示例演示了使用SqlConnection对象如何创建和打开数据库连接。 使用SqlConnection对象建和打开数据库连接: string ConnStr = “server=localhost; Integrated Security=True; database=SuperMarket; “; SqlConnection sqlConn= new SqlConnection(ConnStr); sqlConn.Open();,二、连接数据库,3、连接Access数据库,用于连接Access数据库是AccessDataSource控件,该控件继承自SqlDataSource控件,但是该类不支持连接到受用户名或密码保护的Access数据库。因此这里还是通过SqlDataSource控件来实现可视化连接数据库。 首先,创建一个受密码保护的Access数据库文件Northwind.mdb,该数据库包含一个名为“运货商”的表,该表的内容如图所示。,二、连接数据库,3、连接Access数据库,然后创建一个名为OleDbTest.aspx的网页,在Web页面上添加SqlDataSource控件后,在属性编辑器中选择ConnectionString属性,再新建一个连接,在弹出的“选择数据源”对话框中选择“Microsoft Access数据库文件”,然后单击“继续”按钮,弹出“添加连接”对话框,如图所示。,三、读取数据,1、使用SqlCommand类,SqlCommand类可以用来对SQL Server数据库执行的一个Transact-SQL语句或存储过程。SqlCommand类的CommandText属性用于获取或设置要对数据源执行的 Transact-SQL 语句或存储过程。CommandTimeout属性用于设置获取或设置在终止执行命令的尝试并生成错误之前的等待时间。如果SQL语句或者存储过程中使用了参数,可以通过Parameter属性为参数设置值。 SqlCommand命令对象提供了以下几个基本方法来执行命令: ExecuteNonQuery:可以通过该命令来执行不需要返回值的操作,例如UPDATE、INSERT和DELETE等SQL命令。该命令不返回任何行,而只是返回执行该命令时所影响到的表行数。 ExecuteScalar:它可以执行SELECT查询,但返回的是一个单值,多用于查询聚合值的情况,如使用count()或者sum()函数的SQL命令。 ExecuteReader:该方法返回一个DataReader对象,内容为与命令匹配的所有行。,三、读取数据,1、使用SqlCommand类,示例:演示如何使用SqlCommand类操作数据库 添加一个名为SqlCmdTest.aspx ,在该网页的代码文件中添加代码:,运行效果,三、读取数据,2、使用OleDBCommand类,OleDBCommand的使用方法和SqlCommand非常类似,由于上一节已经介绍了如何编辑数据,这里就不再赘述。下面介绍如何在数据库文件Northwind.mdb中,进行查找记录的操作。代码如下:,三、读取数据,2、使用OleDBCommand类,1. protected void Page_Load(object sender, EventArgs e) 2. 3. String sqlconn = “ Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:ZhouMingHuiASP.NET2.0简明教程代码Northwind.mdb;Jet OLEDB:Database Password=111111“; 4. OleDbConnection myConnection = new OleDbConnection(sqlconn); 5. myConnection.Open(); 6. OleDbCommand myCommand = new OleDbCommand(“select * from 运货商“, myConnection); 7. OleDbDataReader myReader; 8. myReader = myCommand.ExecuteReader(); 9. Response.Write(“使用OleDbCommand类读取数据“); 10. Response.Write(“); 11. Response.Write(“); 12. for (int i = 0; i “ + myReader.GetName(i) + “); 15. 16. Response.Write(“); 17. while (myReader.Read() 18. 19. Response.Write(“); 20. for (int i = 0; i “ + myReaderi.ToString() + “); 23. 24. Response.Write(“); 25. 26. Response.Write(“); 27. myReader.Close(); 28. myConnection.Close(); 29. ,三、读取数据,3、使用存储过程,存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程具有允许标准组件式编程、能够实现较快的执行速度、能够减少网络流量等优点。 通过SqlCommand和OleDBCommand调用存储过程时,首先需要将其CommandType属性设置为CommandType.StoredProcedure,这表示要执行的是一个存储过程。属性的默认值为CommandType.Text,表示执行SQL命令。另外该属性值也可以设置为CommandType.TableDirect表示要直接访问数据表,此时应该把将CommandText属性设置为要访问的一个或多个表的名称。,三、读取数据,3、使用存储过程,示例代码: 1. protected void Page_Load(object sender, EventArgs e) 2. 3. String sqlconn = “Data Source=HZIEE-2E53F913F;Initial Catalog=SuperMarket;Integrated Security=True“; 4. SqlConnection myConnection = new SqlConnection(sqlconn); 5. myConnection.Open(); 6 . SqlCommand myCommand = new SqlCommand(); 7. myCommand.Connection = myConnection; 8. myCommand.CommandType = CommandType.StoredProcedure; 9. myCommand.CommandText = “byType“; 10. SqlParameter parInput = myCommand.Parameters.Add(“t
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号