1、第 四 章 用 ADO.NET 连 接 数 据 库1. ADO.NET 概述:ADO.NET 是.net framework 中不可缺少的部分,它包含一组类,通过这组类使程序和数据库进行交互。2. ADO.NET 的主要组件 .NET Framework 数据提供程序 以只进只读的方式访问数据,在对数据的操作中始终保持连接。 DataSet(数据集)-处理大批量数据,对数据库操作过程中是断开连接。3. ADO.NET 操作数据库结构图4. .NET 数据提供程序 4 个核心对象对象 说明Connection 建立与特定数据源的连接Command 对数据源执行命令DataReader 从数据源中
2、读取只读且只进的数据流DataAdpter 用数据流填充 dataSet 并解析更新5. .NET 数据提供程序类型.NET Framework 数据提供程序说明SQL Server .NET 数据提供程序Microsoft SQL Server 数据源System.Data.SqlClient 命名空间OLE DB .NET 数据提供程序OLE DB 公开的数据源System.Data.OleDb 命名空间ODBC .NET 数据提供程序ODBC 公开的数据源System.Data.Odbc 命名空间Oracle .NET 数据提供程序Oracle 数据源System.Data.Oracle
3、Client 命名空间6. Connection 对象:用于程序和数据库进行连接,是数据库和应用程序之间的桥梁。连接数据库步骤:1、 定义连接字符串:确定要连接的数据库String connStr=”Data Source=服务器名;Initial Catalog=数据库名; User ID=用户名;Pwd=密码”;(连接字符串在 vs2005 中可以通过选择菜单中的“视图”“服务器资源管理器选项”打开服务器资源管理器窗口,并在其中添加相应的数据库连接。之后在属性中找到相应的连接字符串(书中 p151)。)2、 创建 Connection 对象SqlConnection connection
4、= new SqlConnection(connString);3、 打开与数据库的连接connection.Open( );4、 关闭与数据库的连接connection.Close( );7. 异常处理:处理程序在运行过程中出现的问题 使用 trycatch 块捕获和处理异常 finally 块 无论是否发生异常,都会执行把预知的可能出现的错误放到 try 块中。在 catch 块中显示出错误信息 例:Catch(Exception ex)MessageBox.show(ex.Message);8. Command 用于对数据库执行 sql 指令使用 Command 步骤:使用 Comman
5、d 步骤:1、创建数据库连接2、定义 SQL 语句3、创建 Command 对象4、执行命令(执行命令前,必须打开数据库连接!)关键代码:SqlConnection connection = new SqlConnection(connString);string sql = “SELECT COUNT(*) FROM Student“;connection.Open();/ 打开数据库连接SqlCommand command = new SqlCommand(sql, connection);int num = (int)command.ExecuteScalar();/要进行类型转换9.
6、在项目中添加用户名密码是否有效的验证/ 查询 Student 表使用的 SQL 语句string sql = string.Format(“SELECT COUNT(*) FROM Student WHERE LogInId=0 AND LogInPwd=1“,txtLogInId, txtLogInPwd);/ 使用的 Command 对象SqlCommand command = new SqlCommand(sql, DBHelper.connection);DBHelper.connection.Open();/ 执行查询,返回找到的个数count = (int)command.ExecuteScalar();private void Form1_FormClosing(object sender, FormClosingEventArgs e)DialogResult result= MessageBox.Show(“确认退出?“,“提示“,MessageBoxButtons.OKCancel,MessageBoxIcon.Information);if (result = DialogResult.OK)this.Dispose();Application.Exit(); else e.Cancel = true;