C#程序设计简明教程-数据库编程.doc

上传人:自*** 文档编号:124925132 上传时间:2020-03-14 格式:DOC 页数:10 大小:230KB
返回 下载 相关 举报
C#程序设计简明教程-数据库编程.doc_第1页
第1页 / 共10页
C#程序设计简明教程-数据库编程.doc_第2页
第2页 / 共10页
C#程序设计简明教程-数据库编程.doc_第3页
第3页 / 共10页
C#程序设计简明教程-数据库编程.doc_第4页
第4页 / 共10页
C#程序设计简明教程-数据库编程.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《C#程序设计简明教程-数据库编程.doc》由会员分享,可在线阅读,更多相关《C#程序设计简明教程-数据库编程.doc(10页珍藏版)》请在金锄头文库上搜索。

1、第六章 数据库编程一、ADO.NET介绍 ADO.NET是一组允许基于.NET的应用程序访问数据库以便读取和更新信息的类,要使用这些类需要引用System.Data命名空间。它以 ActiveX 数据对象 (ADO) 为基础以 XML(扩展标记语言)为格式传送和接收数据,访问数据存储无需连接。(1) 优点: 互操作性 性能 可伸缩性 标准化 可编程能力(2) 结构:如图1所示图1 ADO.NET结构(3) ADO.NET访问数据库的过程如图2所示图2 访问过程(4) 数据库操作过程 对于Insert,Update,Delete 等单向操作,其过程如图3所示图3 数据库操作模型-1 对于Sele

2、ct的双向操作,其过程如图4所示图4 数据库操作模型-2二、.NET数据提供程序 ADO.NET允许在.NET Framwork中访问和数据库数据,它主要有两个组件: DataSet .NET数据提供程序,它又由:Connection、Command、DataReader、DataAdapter对象组成。 目前,有四种类型的.NET数据提供程序,具体包括: SQLClient:位于System.Data.SqlClient,适用于Sql Servers数据库7.0或以上版本 OLEDB:位于System.Data.OleDb,用于连接可通过OLDDB提供程序访问的任何数据源,如access。

3、Oracle:位于System.Data.OracleClient,适用于Oracle数据库。 ODBC:位于System.Data.Odbc,允许通过ODBC驱动程序管理器来访问数据。 访问过程如图5所示:图5 数据访问过程 其中:1,2,3是从服务器检索数据的过程;A、B是对数据库修改的过程。三、基本组件(1) Connection对象: 用于应用程序和数据库之间的连接,每个数据提供程序都有自己的连接类,常见的如表1所示表2 .NET提供程序及其连接类.NET Framework 数据提供程序Connection 类SQL 数据提供程序SqlConnectionOLE DB 数据提供程序O

4、leDbConnectionOracle 数据提供程序OracleConnectionODBC 数据提供程序OdbcConnection Connection 对象的主要属性: ConnectionString:指定连接数据库的字符串描述。例如要连接到IP地址为123.111.101.200的sql server数据库Test,则可以这样书写连接字符串:SqlConnection objSqlConnection = new SqlConnection (server = 123.111.101.200;uid = sa; pwd = password; database = Test);se

5、rver为服务器的名字,可以采用IP地址和数据库服务器的名称两种形式。 Database:与Connection对象连接的数据库。 主要方法 Close():关闭连接注意:在 ADO.NET 中,必须显式关闭连接,才能释放实际的数据库连接。 Open():打开连接(2) Command对象 指定数据库执行的操作。与Connection一样,不同的提供程序有不同的Command对象,如表3所示表3 .NET提供程序及其命令类.NET Framework 数据提供程序Command 类SQL 数据提供程序SqlCommandOLE DB 数据提供程序OleDbCommandOracle 数据提供程

6、序OracleCommandODBC 数据提供程序OdbcCommand 与数据库建立连接后,可用Command对象执行命令并从数据源返回结果。 属性: CommandText:欲执行的内容,可以是SQL语句或者存储过程名称 CommandType:命令类型,如:StoreProcedure,TahleDirect和Text. Connection:使用的活动连接。 方法: ExecuteNonQuery():返回受影响的行数 ExecuteReader():返回DataReader类型值 ExecuteScalar():返回第一行第一列示例1:用SQL 语句的Command设置 SqlCom

7、mand objComm=new SqlCommand(); objComm.CommandText=SQL 语句; objComm.CommandType=CommandType.Text ; objComm. Connection=objConnection;示例2:用存储过程的Command设置 SqlCommand objComm=new SqlCommand(); objComm.CommandText=“sp_DeleteName;/ Sp_DeleteName为创建的存储过程 objComm.CommandType=CommandType. StoredProcedure ; o

8、bjComm. Connection=objConnection; Sp_DeleteName是在SQL Server服务器上创建的存储过程四、事务处理 事务处理是一组数据操作,这些操作要么必须全部成功,要么必须全部失败,以保证数据的一致性和完整性。 事务处理命令主要有: .Begin: 在执行事务处理中的任何操作之前,必须使用 Begin 命令来开始事务处理。 .Commit: 在成功将所有修改都存储于数据库时,才算是提交了事务处理。 .Rollback: 由于在事务处理期间某个操作失败,而取消事务处理已做的所有修改,这时将发生回滚。 表4列出了用于实现事务处理的类。表4 事务类类说明Odb

9、cTransaction表示对数据源进行的 SQL 事务处理OleDbTransaction表示对数据源进行的 SQL 事务处理OracleTransaction表示对数据库进行的事务处理SqlTransaction表示要对 SQL Server 数据库进行的 Transact-SQL 事务处理 SqlTransaction 类。属性Connection:获取与事务处理关联的SqlConnection对象。方法 Save():保存所有提交的事务处理 Commit( ):提交事务 Rollback( ):撤消事务 事务处理步骤。打开数据库连接 SqlConnection objSqlConnec

10、tion = new SqlConnection (server=SQLDB; uid=sa; pwd=password; database=pubs); objSqlConnection.Open();。开始事务 SqlTransaction objSqlTransaction = objSqlConnection.BeginTransaction();。执行操作 objSqlCommand.Transaction = objSqlTransaction; insertCommand = Insert into Student (Id, Name)values (111, Jim); obj

11、SqlCommand.CommandText = insertCommand; objSqlCommand.ExecuteNonQuery ();。提交事务 /如果操作过程中没有错误,则提交事务处理。 objSqlTransaction.Commit(); /如果操作过程中发生错误,则回滚已完成的所有修改 /objSqlTransaction.Rollback();。关闭连接objSqlConnection.Close(); 示例:以航空公司为例,演示如何建立连接以及如何插入、更新和删除记录。界面如图6所示。图6 frmFlight窗体 表5列出了所涉及到的控件及其属性表5 所用控件控件名称属

12、性值FormfrmFlightText航班详细信息ButtonbtnAddText添加(&A)btnModifyText修改(&M)btnDeleteText删除(&D)btnCancelText取消(&C)LabellblFlightCodeText航班号:lblAirlineText航空公司:lblDestinationText终到站:lblSourceText始发站:lblDepartureText起飞:lblArrivalText到达:ComboBoxcboSeatsText座位数量: 主要代码/ 对象和变量声明/ Connection 对象和 Command 对象private Sq

13、lConnection objSqlConnection;private SqlCommand objSqlCommand; / 类变量private string insCmd;private string modCmd;private string delCmd;在load事件中,进行连接private void frmFlight_Load(object sender, System.EventArgs e)/ 初始化 connection 对象objSqlConnection = new SqlConnection (server = VIJAYK; database = Flight

14、s;uid = sa; pwd = playware);/ 将座位数量添加到组合框中this.cboSeats.Items.Clear();this.cboSeats.Items.Add(100);this.cboSeats.Items.Add(150);this.cboSeats.Items.Add(200);this.btnModify.Enabled = false;this.btnDelete.Enabled = false;/ 添加记录代码private void btnAdd_Click(object sender, System.EventArgs e)/ 插入命令insCmd = insert into FlightDetails values(+this.txtFlightCode.Text+, +this.txtAi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 工业设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号