《C数据库应用程序设计.pptx》由会员分享,可在线阅读,更多相关《C数据库应用程序设计.pptx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、接口是指前台程序接口是指前台程序和后台数据库的连接部分。和后台数据库的连接部分。接口的概念12主要的数据库访问接口ODBC(Open DataBase Connectivity,开放式数据库互连):只能访问关系型数据。OLE DB(Object Linking and Embedding DataBase,数据库对象的链接与嵌入):系统级编程接口,可以访问所有类型的数据。一、数据库访问接口第1页/共24页ADO(ActiveX Data Objects,ActiveX数据对象):应用程序级编程接口,可以访问所有类型的数据。ADO.NET:ADO的升级版本,是.NET平台采用的数据库访问接口。一
2、、数据库访问接口第2页/共24页ADO.NETADO.NET是是一一些些.NET.NET FrameworkFramework类类库库中中与与数数据据库库访访问问有有关关的的类类的的集集合合,它它是是一一种种可可以以使使程程序序员员快快速速、高高效效地地利利用用.NET.NET开开发发出出数数据据库库应应用用程程序序的的技技术术。其其体体系系结结构如下:构如下:ADO.NET的体系结构1二、ADO.NET概述第3页/共24页从从ADO.NETADO.NET的的体体系系结结构构可可以以看看出出,ADO.NETADO.NET包包括括两大部分:两大部分:数据提供者数据提供者和和DataSetData
3、Set(数据集)(数据集)。2数据提供者数据提供者也称为.NET Framework 数据提供程序,包括一系列用于连接到数据库、执行命令和检索结果等类。(1)核心对象二、ADO.NET概述第4页/共24页二、ADO.NET概述对象名称对象名称功能描述功能描述ConnectionConnection数据库连接对象,建立与数据库的连接数据库连接对象,建立与数据库的连接CommandCommand命令对象,执行数据访问命令的对象命令对象,执行数据访问命令的对象DataReaderDataReader数据读取器对象,读取数据源中只读、向数据读取器对象,读取数据源中只读、向前的数据前的数据DataAda
4、pterDataAdapter数据适配器对象,读取数据源数据填充数数据适配器对象,读取数据源数据填充数据集对象据集对象DataSetDataSet第5页/共24页(2)数据提供程序种类二、ADO.NET概述数据提供程序数据提供程序命名空间命名空间核心对象核心对象说明说明用于 SQL Server 的数据提供程序System.Data.SqlClientSqlConnectionSqlCommandSqlDataReaderSqlDataAdapter提供对 Microsoft SQL Server 7.0 或更高版本中数据的访问。用于OLE DB的数据提供程序System.Data.OleDb
5、OleDbConnectionOleDbCommandOleDbDataReaderOleDbDataAdapter提供对使用OLE DB 公开的数据源中数据的访问用于 ODBC 的数据提供程序System.Data.OdbcOdbcConnectionOdbcCommandOdbcDataReaderOdbcDataAdapter提供对使用 ODBC 公开的数据源中数据的访问用于 Oracle 的数据提供程序System.Data.OracleClientOracleConnectionOracleCommandOracleDataReaderOracleDataAdapter适用于 Ora
6、cle 数据源第6页/共24页DataSetDataSet对对象象又又称称为为数数据据集集对对象象,是是支支持持ADO.NETADO.NET的的断断开开式式、分分布布式式数数据据方方案案的的核核心心对对象象,是是ADO.NETADO.NET技技术术的的精精髓髓。DataSetDataSet是是数数据据的的内内存存驻驻留留表表示示形形式式,可可以以将其理解为内存中的数据库。将其理解为内存中的数据库。DataSetDataSet对对象象包包含含一一个个或或多多个个DataTableDataTable(数数据据表表)对对象象的的集集合合,这这些些对对象象由由数数据据行行(DataRowDataRow
7、)和和数数据据列列(DataColumnDataColumn),以以及及有有关关DataTableDataTable对对象象中中数数据据的的主键、外键、约束和关系信息组成。主键、外键、约束和关系信息组成。其结构如下:其结构如下:DataSet 对象二、ADO.NET概述3 3第7页/共24页二、ADO.NET概述第8页/共24页特点特点:客户机一直保持和数据库服务器的连接。:客户机一直保持和数据库服务器的连接。适适用用环环境境:适适合合数数据据传传输输量量少少、系系统统规规模模不不大大、客客户机和服务器在同一网络内的环境。户机和服务器在同一网络内的环境。连接模式下数据访问的步骤连接模式下数据访
8、问的步骤连接模式1三、ADO.NET数据库访问模式(1)使用Connection对象连接数据库;(2)使用Command对象执行数据访问命令;(3)使用DataReader对象访问数据;(4)访问完毕后,关闭DataReader对象和Connection对象。第9页/共24页特特点点:客客户户机机操操作作数数据据时时可可以以断断开开和和数数据据库库服服务务器器的连接。的连接。适适用用环环境境:适适合合网网络络数数据据量量大大、系系统统节节点点多多、网网络络结构复杂,尤其是通过结构复杂,尤其是通过InternetInternet进行连接的网络。进行连接的网络。断开连接模式下数据访问的步骤断开连接
9、模式下数据访问的步骤(1 1)使用)使用ConnectionConnection对象连接数据库;对象连接数据库;(2 2)使用)使用CommandCommand对象设置数据访问命令;对象设置数据访问命令;(3 3)使使 用用 DataAdapterDataAdapter对对 象象 访访 问问 数数 据据 并并 填填 充充 到到DataSetDataSet对象中;对象中;断开连接模式三、ADO.NET数据库访问模式2第10页/共24页(4 4)在在DataSetDataSet对对象象中中执执行行数数据据的的各各种操作。种操作。(5 5)使使用用DataAdapterDataAdapter对对象象
10、更更新新数数据库。据库。三、ADO.NET数据库访问模式第11页/共24页声明并创建声明并创建ConnectionConnection对象对象格格式式:*Connection Connection 对对象象名名=new=new*Connection(*Connection(连连接接信息信息););(1 1)连接到)连接到SQL Server SQL Server 数据库的连接信息设置数据库的连接信息设置 采用采用Windows NTWindows NT集成身份验证集成身份验证“Server=Server=服服务务器器名名;Integrated;Integrated Security=SSPI;
11、Database=Security=SSPI;Database=数数据库名据库名”采用采用SQL ServerSQL Server身份验证身份验证“Server=Server=服服务务器器名名;UID=;UID=登登录录名名;PWD=;PWD=密密码码;Database=;Database=数数据据库库名名”注注 意意:连连 接接 到到 SQL SQL Server Server 数数 据据 库库 一一 般般 使使 用用 SQL SQL ServerServer数数据据提提供供程程序序的的SqlConnectionSqlConnection对对象象,以以上上连连接信息是针对该连接对象而设置的。
12、接信息是针对该连接对象而设置的。使用Connection对象连接数据库1四、使用连接模式访问数据库第12页/共24页(2 2)连接到)连接到AccessAccess数据库的连接信息设置数据库的连接信息设置“Provider=Microsoft.Jet.OLEDB.4.0;Data Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Source=数据库文件名数据库文件名 注注意意:连连接接到到AccessAccess数数据据库库一一般般使使用用OLE OLE DBDB数数据据提提供供程程序序的的OleDbOleDbConnectionConnection对
13、对象象,以以上上连连接接信信息息是是针针对对该连接对象而设置的。该连接对象而设置的。例例:采采用用Windows Windows NTNT集集成成身身份份验验证证方方式式连连接接到到SQL SQL Server Server 数据库。数据库。string string strCnn=strCnn=“Server=localhost;Integrated Server=localhost;Integrated Security=SSPI;Database=StudentSecurity=SSPI;Database=Student”;SqlConnection SqlConnection sqlC
14、nn sqlCnn=new new SqlConnection(strCnn);SqlConnection(strCnn);四、使用连接模式访问数据库第13页/共24页使用使用ConnectionConnection对象连接到数据库对象连接到数据库格式:格式:对象名对象名.Open();Open();例:例:sqlCnn.sqlCnn.Open();Open();说说明明:关关闭闭连连接接对对象象使使用用如如下下格格式式:对对象象名名.Close();Close();,例如,例如sqlCnnsqlCnn.Close();.Close();四、使用连接模式访问数据库第14页/共24页声明并创建声
15、明并创建CommandCommand对象对象格式一:格式一:SqlCommand SqlCommand 对象名对象名=new SqlCommand(=new SqlCommand(命令字符串命令字符串,连接对象连接对象););格式二:格式二:SqlCommand SqlCommand 对象名对象名=new SqlCommand();=new SqlCommand();设置设置CommandCommand对象的属性对象的属性ConnectionConnection:设置该实例的连接对象:设置该实例的连接对象;CommandTypeCommandType:设置该实例的命令类型,有三种:一般:设置该
16、实例的命令类型,有三种:一般SQLSQL语语句类型句类型CommandType.TextCommandType.Text、存储过程类型、存储过程类型CommandType.StoredProcedureCommandType.StoredProcedure和表类型和表类型CommandType.TableDirectCommandType.TableDirect;CommandTextCommandText:可以是:可以是SQLSQL语句、存储过程名和表名语句、存储过程名和表名;使用Command对象访问数据库中数据四、使用连接模式访问数据库2第15页/共24页例例1 1:string sql
17、=select*from student;string sql=select*from student;SqlCommand sqlCmd=new SqlCommand sqlCmd=new SqlCommand(sql,sqlCnn);SqlCommand(sql,sqlCnn);例例2 2:string sql=select*from student;string sql=select*from student;SqlCommand sqlCmd=new SqlCommand();SqlCommand sqlCmd=new SqlCommand();sqlCmd.Connection=sq
18、lCmd.Connection=sqlCnnsqlCnn;sqlCmd.CommandType=CommandType.Text;sqlCmd.CommandType=CommandType.Text;sqlCmd.CommandText=sql;sqlCmd.CommandText=sql;四、使用连接模式访问数据库第16页/共24页使用使用CommandCommand对象执行命令对象执行命令格格式式一一:返返回回SqlDataReaderSqlDataReader对对象象,并并通通过过该该对对象象访访问执行结果。一般在执行查询命令时使用该格式。问执行结果。一般在执行查询命令时使用该格式。S
19、qlDataReader SqlDataReader 对象名对象名=命令对象名命令对象名.ExecuteReader();.ExecuteReader();或或SqlDataReader SqlDataReader 对象名对象名=命令对象名命令对象名.ExecuteReader(CommandBehavior.CloseConnection);.ExecuteReader(CommandBehavior.CloseConnection);格格式式二二:返返回回受受影影响响的的行行数数。一一般般在在执执行行插插入入、更更新新语句或不返回结果集的存储过程时使用该格式。语句或不返回结果集的存储过程时
20、使用该格式。命令对象名命令对象名.ExecuteNonQuery().ExecuteNonQuery();格式三:格式三:返回结果集中的第一行第一列的值,忽略其返回结果集中的第一行第一列的值,忽略其他行或列,一般在执行统计查询时使用该格式。他行或列,一般在执行统计查询时使用该格式。命令对象名命令对象名.ExecuteScalar();.ExecuteScalar();四、使用连接模式访问数据库第17页/共24页例如:例如:SqlDataReader SqlDataReader sqlDr=sqlCmd.ExecuteReader();sqlDr=sqlCmd.ExecuteReader();C
21、ommandCommand对象的高级使用:带参数的命令对象的高级使用:带参数的命令命令参数的格式:命令参数的格式:SQL Server 的数据提供程序使用命令参数(前面冠以 符号)指定参数;OLE DB的数据提供程序使用问号(?)指定参数。向向CommandCommand对象添加参数的格式:对象添加参数的格式:SqlParameter SqlParameter 参参数数对对象象名名=命命令令对对象象名名.Parameters.Add(.Parameters.Add(“参数名参数名”,参数类型参数类型,参数大小参数大小););参参数数对对象象名名.Direction.Direction=参参数数
22、方方向向(输输入入/输输出出/双双向向/返返回回值值参数)参数);参数对象名参数对象名.Value=Value=参数值;参数值;四、使用连接模式访问数据库第18页/共24页例如:例如:string string strSql strSql=select select*from from student student where where 姓名姓名=name;=name;SqlCommand SqlCommand sqlCmd=newsqlCmd=new SqlCommand(strSql,SqlCommand(strSql,sqlCnn);sqlCnn);SqlParameter para
23、Name=sqlCmd.Parameters.AddSqlParameter paraName=sqlCmd.Parameters.Add (name,SqlDbType.NVarChar,10);(name,SqlDbType.NVarChar,10);paraName.Direction=ParameterDirection.InputparaName.Direction=ParameterDirection.Input;paraName.Value=lstName.Text;paraName.Value=lstName.Text;注注:OLE DB的数据提供程序的参数在添加时必须与参数定
24、义的顺序一致,SQL Server的数据提供程序则不作要求,但也最好一致。四、使用连接模式访问数据库第19页/共24页四、使用连接模式访问数据库使用DataReader对象读取数据3 3获取SqlDataReader对象通过Command对象ExecuteReader()方法获取。使用格式同前述。注意:不能使用new关键字创建SqlDataReader对象。SqlDataReader对象的主要属性与方法FieldCount属性:获取当前行中的列数;GetString方法:获取指定字段的字符串类型的值;Close方法:关闭SqlDataReader对象。第20页/共24页四、使用连接模式访问数据
25、库Read方法:前进到下一条记录。若该记录存在,则返回true,否则返回false;注意:SqlDataReader对象记录指针的默认位置在第一条记录前面,因此,必须调用Read方法从第一条记录开始读取数据。使用SqlDataReader对象读取数据格式:GetString(字段序号)或对象名“字段名”或 对象名字段序号 第21页/共24页四、使用连接模式访问数据库例如:SqlDataReader sqlDr=sqlCmd.ExecuteReader();if(sqlDr.Read()textBox1.Text=sqlDr姓名.ToString();textBox1.Text=sqlDr.Ge
26、tString(1);第22页/共24页DataSet(DataSet(数据集数据集)对象:内存中的数据库;对象:内存中的数据库;DataTable(DataTable(数据表数据表)对象:内存中的数据表,可以独立存在;对象:内存中的数据表,可以独立存在;DataRow(DataRow(数据行数据行)对象:设置数据表中的行;对象:设置数据表中的行;DataColumn(DataColumn(数据列数据列)对象:设置数据表中的列;对象:设置数据表中的列;DataView(DataView(数数据据视视图图)对对象象:提提供供界界面面显显示示的的数数据据,该该数数据据来来自自数数据表。该对象支持数
27、据筛选;据表。该对象支持数据筛选;DataRelation(DataRelation(关系关系)对象:对象:设置数据表间的关系;设置数据表间的关系;ConstraintConstraint对对(约束约束)对象:对象:设置数据表间的约束;设置数据表间的约束;BindingSource BindingSource(绑绑定定源源)对对象象:是是内内存存中中的的数数据据源源和和控控件件间间的的桥桥梁,用于实现数据绑定;梁,用于实现数据绑定;DataAdapterDataAdapter(数数据据适适配配器器)对对象象:是是远远程程数数据据源源与与DataSetDataSet间间的的桥梁;桥梁;CommandBuilder(CommandBuilder(命命令令生生成成器器)对对象象:根根据据用用户户进进行行的的操操作作自自动动生生成相应的命令。成相应的命令。与本连接模式有关的对象:四、使用断开连接模式访问数据库第23页/共24页谢谢您的观看!第24页/共24页
限制150内