您好,欢迎访问三七文档
C#数据库编程11.1数据库编程基础11.1.1ADO.NET简介11.1.2第一个简单例子11.1.3访问数据库的一般步骤11.1.1ADO.NET简介ADO(ActiveDataObjects)是Microsoft开发的面向对象的数据访问库,ADO.NET是ADO的后续技术,提供对SQLSEVER等数据源的一致访问。数据使用者可以通过ADO.NET来连接到这些数据源(SQLSERVER\ACCESS\OLEDB等),并检索、操作和更新数据。ADO.NETDataSet是ADO.NET结构的核心组建,DataSet中包括一个或多个DataTable对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关DataTable对象中数据的关系信息组成。ADO.NET的另外一个核心元素是.NETFramawork数据提供程序,能够实现数据操作和对数据的快速访问。其中,Connection对象提供与数据源的连接;Command对象使你能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令;DataReader对象从数据源中提供高性能的数据流;DataAdapter对象提供连接DataSet对象和数据源的桥梁。目前,.NETFramawork附带了两个数据提供程序:SQLServer和OLEDB数据提供程序。OLEDB数据提供程序位于System.Data.OleDb空间,SQLServer数据提供程序位于System.Data.SqlClient命名空间。以下是每个数据提供程序所包含的主要类:实现接口OLEDB提供程序SQLServer提供程序ConnectionOleDbConnectionSqlConnectionCommandOleDbCommandSqlCommandDataReaderOleDbDataReaderSqlDataReaderDataAdapterOleDbDataAdapterSqlDataAdapter11.1.2第一个简单例子现在编写一个名为GetStudent的访问SQLSERVER数据库的控制台应用程序,对学生信息表中的信息进行读取(假设学生信息表已经建立)。usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Data.SqlClient;namespaceGetStudent{classProgram{staticvoidMain(){stringconnStr=“server=(local);InitialCatalog=students;userId=sa;password=1234”;SqlConnectionconn=newSqlConnection(connStr);conn.Open();SqlCommandcmd=conn.CreateCommand();cmd.CommandText=“SelectID,sNamefromstudent”;SqlDataReaderreader=cmd.ExecuteReader();stringoutput;while(reader.Read()){output=string.Format(“学生{0}\t的学号是{1}”,reader.GetString(1),reader.GetString(0);Console.Writeline(output);}reader.Close();conn.Close();}}}实例代码讲解(1)导入数据访问的名称空间,表示在该程序中将使用SQLServer数据提供程序。usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Data.SqlClient;(2)在Main主方法中,首先定义了一个字符串类型的connStr变量,用来存放连接SQLSERVER的数据库连接字符串。接着新建了一个SqlConnection对象,用于连接数据库。stringconnStr=“server=(local);InitialCatalog=students;userId=sa;password=1234”;SqlConnectionconn=newSqlConnection(connStr);(3)调用conn对象的Open方法打开数据库连接。conn.Open();(4)新建SqlCommand对象,该对象用于向数据库发出命令。通过调用数据库连接对象conn的CreateCommand方法来建立SqlCommand对象。SqlCommandcmd=conn.CreateCommand();(5)有了命令对象cmd后,指定该命令对象的属性CommandText。cmd.CommandText=“SelectID,sNamefromstudent”;(6)命令对象cmd设置完毕,可以向数据库发出命令,执行在CommandText中定义的操作。cmd对象的执行结果保存在SqlDataReader对象reader中。SqlDataReaderreader=cmd.ExecuteReader();(7)在reader中已经保存了从数据库读取的信息,现在的任务是输出它们。从数据读取器中获取数据一般用while循环,Read()方法一直返回真值,直到reader的指针指向最后一条记录的后面。while(reader.Read()){output=string.Format(“学生{0}\t的学号是{1}”,reader.GetString(1),reader.GetString(0);Console.Writeline(output);}(8)数据读取以后,应该关闭数据读取器和数据库连接对象。reader.Close();conn.Close();11.1.3访问数据库的一般步骤从前面例子的分析中,得出通过ADO.NET访问数据库的一般步骤如下:(1)建立数据库连接对象(Connection对象);(2)打开数据库连接(Connection对象的Open方法);(3)建立数据库命令对象,指定命令对象所使用的连接对象(Command);(4)指定命令对象的命令属性(CommandText属性);(5)执行命令(Command的方法,如ExecuteReader);(6)操作返回结果(对SqlReaderData对象进行读取);(7)关闭数据库连接。11.2.4数据连接在数据访问中必须建立到数据库的物理连接。每个数据提供程序都包含自己特有的Connection对象。当使用OLEDB数据提供程序时,要使用System.Data.OleDb空间的OleDbConnection对象,使用SQLServer数据提供程序时,要使用位于System.Data.SqlClient命名空间的SqlConnection对象。在程序开始导入名称空间System.Data.SqlClient和System.Data.OleDb。11.2.4.1连接SQLSERVER数据源1、SqlConnection类SqlConnection类有两个构造函数,一个不带参数,一个接受连接字符串。可以使用以下两种方法进行实例化连接。stringconnStr=“server=(local);InitialCatalog=students;userId=sa;password=1234”;SqlConnectionconn=newSqlConnection(connStr);conn.Open();或者SqlConnectionconn=newSqlConnection(“server=(local);InitialCatalog=students;userId=sa;password=1234”;);conn.Open();注意:只有当一个连接关闭后才能把两外一个不同的连接字符串赋值给Connection对象。如果不知道该对象是打开的还是关闭的,可以检查对性的State属性,它的值可以是Open,也可以是Closed。Broken与数据源连接中断,可以关闭之后再打开。Closed处于关闭状态Connecting对象正与数据源连接Executing对象正在执行命令Fetching对象正在检索数据Open连接处于打开状态2、连接字符串ConnectionString连接字符串包含由一些“属性名=值”对组成的集合,每个“属性名=值”对都由分号隔开。stringconnStr=“server=(local);InitialCatalog=students;userId=sa;password=1234”;其中,server为服务器地址,值local表示使用本地机器。server关键字也可以用DataSource来代替,即字符串可以写成stringconnStr=“DataSource=(local);InitialCatalog=students;userId=sa;password=1234”;InitialCatalog指明了连接使用的数据库,userID和password则分别指明了访问数据库时使用的用户名和密码。如果在安装数据库软件时选择的身份验证方式为windows身份验证模式,则应使用如下连接字符串:stringconnStr=“DataSource=(local);InitialCatalog=students;IntegratedSecurity=SSPI”;IntegratedSecurity=SSPI表示连接时使用的是windows身份验证模式。3、SqlConnection的方法SqlConnection由自己的方法,如前面使用过的Open()和Closed()方法。其他方法还有:CreateCommand创建并返回一个与SqlConnection关联的SqlCommand对象。ChangeDatabase为打开的SqlConnection更改当前数据库。注意:数据库连接必须小心,应该在最晚的时候建立连接,在最早的时候关闭连接,以释放占用的内存和网络带宽资源。4、连接SQLSERVER的数据访问实例(1)启动visualstudio.net,新建一个windows应用程序。(2)从工具栏中拖动一个Button控件到页面中,将ID设为btnconnect,Text属性为“点击连接数据库”。(3)在Form1.cs文件中添加名称空间usingSystem.Data.SqlClient;(4)双击btnConnect控件,在Click事件相关处理程序btnconnect_click中输入以下代码:try{SqlConnectionconn=newSqlConnection();conn.ConnectionString=“DataSource=(local);userid=sa;password=1234;initialCatalog=student;”;conn.Open();if(conn.State==ConnectionState.Open)MessageBox.Show(“连接已经打开”);conn.Close();if(conn.State==ConnectionState.Closed)MessageBox.Show(“连接已经关闭”);}catch(Exceptione){MessageBox.Show(“连接失败,原因可能是“+e.Message);}5、按ctrl+f5运行项目,单击表单中的”点击连接数据库“按钮,如果数据库连接成功,则将依次弹出两个对话框。6、如果连接不成功,则会得到提示错误信息的页面。11.2.4.2连接OLEDB数据源1、说明目前在网络流行的小型数据库access,就应该使用OLEDB.NET数据提供程序来访问数据,该程序在System.Data.OleDb空
本文标题:C#数据库编程
链接地址:https://www.777doc.com/doc-7023262 .html