第一部分 ADO.NET的基本概念
Microsoft 的数据库访问技术
1.开放数据库互联(ODBC):数据访问应用程序接口
2.数据访问对象(DAO):建立基于COM的数据库访问技术
3.远程数据对象(RDO):
4.ODBCDirect
5.OLEDB
6.ActiveX数据库对象(ADO)
7.ADO.NET:核心是DataSet
.NET Framework
主要目的就是提供一个稳健的web应用程序部署和开发的平台
1..NET Framework组件
.NETFramework实质是由CLR和应用程序使用的类库组成
2.ADO.NET命名空间
第二部分 理解.NETFramework
1..NET体系结构
(1)公共语言运行库(CLR)
(2)通用类型系统(CTS)
值类型(bool,byte,char,decimal,double,short,int,long,sbyte,float,string,ushort,uint,ulong)
引用类型(class,delegate,arrary,interface)
2..NET Framework类库
(1)Microsoft命名类库
(2)System命名类库
System:每个程序必须使用的一个类库,它包括基本的数据类型
System.Collections:包含用来管理对象集合的类
System.ComponentModel:提供控制组件和控件的设计和运行时行为的类
System.Configuration:包含使应用程序能够访问.NET Framework配置的类
System.Data:提供对ADO.NET和他的数据库访问类和数据类型的支持,他包括基本的DataSet和DataTable类
System.Diagnostics:包含应用程序能够管理系统进程,读取系统事件日志和性能监控器计数器类
System.Drawing:包含访问提供图形支持的系统GDI+函数的类
System.IO:包含应用程序能够同步或异步方式读写数据流的类
System.Net:包含使用HTTP及TCP和UDP套接字进行网络通信的类
System.Reflection:包含应用程序能够读取所加载的程序集的元数据类
System.Runtime.Remoting:包含使用应用程序能够管理开发分布式应用程序所要求的远程对象
System.Security:包含能够控制应用程序的安全特性的类
System.Text:包含字符串ASCII,Unicode,UTF-8字符的类
System.Web:用于Web服务方式的编程类库
System.Windows.Forms:用于基于桌面应用程序的类库
System.Xml:用于基于xml数据存储方式的编程的类库
(3)程序集:一种新的打包可执行的方法(.exe/.dll)
第三部分 ADO.NET体系结构
1.ADO.NET的命名空间
System.Data.SqlClient(SQL),System.Data.OracleClient(Oracle),System.Data.OleDbClient(Access)
2..NET数据提供者的核心类
(1)Connection:打开到目的数据源的连接
(2)Command:用来激活Connection连接数据源执行的一个存储过程或者一条SQL语句,他支持三个命令:ExecuteReader,ExecuteNonQuery,ExcuteScalar
(3)Parameter:代表传递给Command对象的参数
(4)DataReader:从激活的Connection对象连接的目标数据源返回一个向前的数据流,其他的ADO.NET可以通过构造函数来创建,但这个可以通过调用ExecuteReader方法实例化
(5)DataAdapter:在DataSet对象和激活的Connection对象代表的数据源之间建立一条连接
(6)CommandBuilder:自动生成命令的机制
(7)Transaction:代表一个SQL事务,他需要附加到激活的Connection对象上面
(8)Error:目标数据源生成的错误信息
(9)Exception:当.net数据提供者遇到一个其成员生成的错误时,就会创建一个Exception类
3.ADO.NET System.Data命名空间中的核心类
(1)DataSet
(2)DataTable
(3)DataColumn
(4)DataRow
(5)DataView
(6)DataViewManager
(7)DataRelation
(8)Constraint
(9)ForeignKeyConstraint
(10)UniqueConstraint
(11)DataException
(12)System.Data命名中的空间的集合
(13)System.Data命名中的空间中的异常
第四部分 ADO.NET Connection对象(SQL和Oracle的连接方式类似)
第一节:SQL的数据提供者
1.用Connection进行数据库的连接
添加命名空间 using System.Data.SqlClient;
2.关于连接的字符串
(1)设置Connection的ConnectionString属性,可以连接到数据库
在创建Connection对象的时候可以用构造函数直接给对象赋予连接字符串
在连接的时候最好使用这个安全的连接方式
using (SqlConnection connection = new SqlConnection(connectionString)){}
(2)关于连接字符串的常用属性的设置
1.Connection Timeout:设置连接中断之前的等待的秒数,默认是15秒
2.Current Language:指定当前连接使用的SQL Server语言名称
3.Data Source或者Server或Address:表示要连接数据库的SQL Server的实例名称或者网络地址
4.Encrypt:决定是否使用SSL加密在应用程序和SQL Server之间传递的数据流,默认为FALSE
5.Inital Catalog/Database:SQL目标数据库的名称
6.Integrated Security/Trusted Connection:True/SSPI值表示使用Windows身份验证连接数据库。FALSE表示混合模式
7.Password/Pwd:表示数据库的密码
8.User ID/UID:表示数据库的用户
(3)打开信任的连接
就是用WINDOWS的身份验证方式,他是用客户端的WINDOWS身份登陆的,是一种安全的登陆机制
(4)使用连接池
当连接的字符串相同时,可以使用一个相同的连接池
第二节:Oracle的数据提供者
第五部分 ADO.NET Command对象的使用(SQL和Oracle)
Command最常用的就是执行动态的SQL和存储过程
第一节:SqlCommand对象的使用
(1)SqlCommand常用属性和方法的使用
SqlCommand构造函数:
(1)SqlCommand(String):初试化SqlCommand对象,String通常是一个可以执行的SQL语句或者存储过程的名称,可以使用这命令进行操作
(2)SqlCommand(String sql,SqlConnection conn):sql表示一个可以执行的SQL语句或者存储过程的名称,conn表示的是一个可以连接到数据库的对象
(3)SqlCommand(String sql,SqlConnection conn,SqlTraction tran):其中tran表示的是一个事务对象
(4)SqlCommand():表示一个空的对象实例。要在后面的属性中设置他的相对应的属性值
重要的四个属性:
(1)CommandText:动态的设置SqlCommand实例的SQL语句,一般在没有初始化的设置SQL语句
(2)CommandType:执行命令种类,有三种种类可以用一个枚举类型CommandType表示,其一Text表示执行的是动态的SQL语句,也是系统默认的一种。其二StoredProcedure表示的执行的存储过程,如果在构造函数中指定为存储过程,则必须要在后面声明这个属性为CommandType.StoredProcedure,其三CommandType 属性设置为 TableDirect 时,应将 CommandText 属性设置为要访问的表的名称。
(3)Connection:表示设置一个连接对象
(4)Parameters:命令的参数,可以理解为命令参数的集合,常用@作为SQL语句参数的前缀,用Add方法把参数添加到参数中,如command.Parameters.Add(paramArray);其中paramArray为SqlParameter[]数组或者为SQL中的参数,下面为参数SQL参数或者存储过程赋值的方法,要用到SqlParameter类的对象,SqlParameter parameter = SqlCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15);parameter.Value = "Beverages";
(2)SqlCommand命令对象
1.执行动态的SQL语句
要使用SqlCommand执行有关的命令,首先要创建一个SqlCommand对象,常用的构造函数有四种。他们分别是
2.执行带参数的SQL语句
常用的有三个执行方法,他们分别是:
(1)ExecuteNonQuery():SqlCommand对象执行的方法。必须跟SqlCommand关联的SqlConnection对象处于打开状态,才能够执行相关的操作命令,该函数返回的是执行这个命令对象所影响的行数,是一个整数,这个整数通常用于数据库判断是否存在这样的记录
(2)ExecuteReader():SqlCommadn对象执行的方法,该方法返回一个数据流对象SqlDataReader,这个对象只能返回一个流对象,用他的Read()方法可以依次返回这个流对象的每行记录,同时可以访问到行的每个字段,它通常配合While循环来使用,同时可以设置他的ExecuteReader(CommandBehavior.CloseConnection),自动关闭流对象命令
(3)ExecuteScalar():以对象的形式返回第一行第一列的数值,通过强类型转换可以得到相对应的数据。
3.执行存储过程(重点掌握)
存储过程的使用主要就是首先在数据库定义好存储过程,然后在程序中调用这个存储过程,在存储过程中要确定输出参数和输入参数,在SqlCommand对象中设置命令的类型为存储过程,注意名称要和数据中的名称一致,然后添加相应的命令参数,为存储过程的参数设置好他的属性,如类型,值然后就可以用这个命令来执行相对应的命令,返回要求的值。
第二节:SqlParameter对象的使用
(1)SqlParameter对象的常用属性:
构造函数:public SqlParameter (string parameterName,SqlDbType dbType,int size),创建一个参数对象,parameterName为参数名称,SqlDbType表示参数的类型,size表示参数的大小
属性:
DbType:表示参数的数据类型
IsNullable:有true和false两个值,是否允许参数为空值。
Value:表示为参数赋值
Direction:表示参数的输出或输入方向,这个值是一个枚举ParameterDirection类型,它的成员包含四个,它们分别是Input(系统默认)表示输入参数类型,Output表示输出参数类型,InputOutput表示两者都可以,ReturnValue表示存储过程或者内置函数操作的返回值
(2)SqlParameter对象的数组模型
SqlParameter para[]为函数传递一个参数对象数组,常用于函数需要多个命令参数的时候
第三节:OracleCommand对象的使用
1)OracleCommand常用属性和方法的使用
(2)OracleCommand命令对象
1.执行动态的SQL语句
2.执行带参数的SQL语句
3.执行存储过程(重点掌握和论述)
第六部分:ADO.NET DataReader对象的使用
第一节:SqlDataReader对象的使用
(1)SqlDataReader对象的特点
SqlDataReader对象是SqlCommand对象执行ExecuteReader()方法得到的流对象,这个对象只能以流进的方式来显示
(2)SqlDataReader对象的使用
1>这个对象的使用主要配合while循环的运用Read()进行判断流中是否存在数据,在这个过程之中可以通过这个对象的索引来取的每列的值,其中取得值和数据类型的方式,通常上通过get函数来获取,最后就是要关闭这个流对象,防止占用资源
2>可以返回一个数据集,用于对控件的数据绑定