ADO.NET—数据提供程序(连接类)
.NET Framework 数据提供程序是专门为数据处理以及快速地只进、只读访问数据而设计的组件。
一、Connection
1、介绍
开启程序和数据库之间的连结
ADO.NET底层
可自己产生对象或由其它对象自动产生。
2、属性和方法
Connectionstring属性:获取或设置连接语
DataBase 属性:获取当前打开数据库
DataSource属性:获取打开数据库的连接实例
注:必须显示关闭
3、实例
连接数据库的步骤:
定义连接字符串
stringconnstr=“server=.;database=数据库名; Integrated Security=SSPI”;
创建 Connection 对象
SqlConnection conn = new SqlConnection(connstr);
打开与数据库的连接
conn.Open( );
补充:连接字符串组成部分:
服务器名
server=./ip地址/主机名( dataSource=./ip地址/主机名)
数据库名
dataBase=数据库名 ( Initial Catalog=数据库名 )
身份验证方式
windows方式:
Integrated Security=SSPI (Trusted_Connection=yes)
SQL验证方式
uid=用户名;pwd=密码
二、Command
1、介绍
架构在Connection对象上
向数据库发出操作指令(增、删、改、查)
呼叫存在数据库中的预存程序等
透过连结到数据源的Connection对象来下命令
Connection连结到哪个数据库,Command对象的命令就下到哪里
2、属性和方法
CommandType 属性:设置或获取执行语句的类型。它有3个属性值:StoredProceduce(存储过程)、TableDirectText(标准的SQL语句)、默认是TextParameters属性:取得参数值集合
3、实例
第一步,创建数据库连接
string conn= connectionString="Data Source=.;Initial Catalog=RoomCharge;User ID=sa;Password=***"
第二步,定义 SQL 语句
Dim Sqlserver AsString = "Update T_UserInfo set passWord=@Password WhereuserID=@UserID"
第三步,创建 Command 对象
Dim sCom As New SqlCommand
第四步,执行命令(必须先打开数据库)
conn.Open()
sCom.CommandText =Sqlserver
sCom.Connection =conn
sCom.ExecuteNonQuery()
Conn.close()
三、DataAdapter
1、介绍
架构在Command对象上,并提供了许多配合DataSet使用的功能
在数据源于DataSet之间执行数据传输的工作
它可以透过Command对象下达命令后,并将取得的数据放入DataSet对象中
2、属性
数据库中最主要的操作是查询、插入、删除及更新四种,DataAdapter对象提供了4种属性与这四种操作想对应(4个属性的值不能直接设置成字符串类型的SQL语句,而应设置成Command对象)
属性 |
说明 |
SelectCommand |
设置从数据库中选择数据的SQL语句或存储过程 |
InsertCommand |
设置向数据库中插入新记录的SQL语句或存储过程 |
DeleteCommand |
设置从数据库中删除记录的SQL语句或存储过程 |
UpdateCommand |
设置更新数据源中记录的SQL语句或存储过程 |
方法 |
说明 |
Fill |
用于向DataSet对象中填充从数据源中读取的数据 |
Update |
用于将数据集Dataset对象中按属性所定义的形式向数据库中更新 |
注:
Fill方法形式:DataAdapter 对象名.Fill(DataSet 对象名,"数据表名")
Update方法个格式:RDateAdapter 对象名.Update(DataSet 对象名,"数据表明")
3、实例
第一步,创建数据库连接
string conn= connectionString="Data Source=.;Initial Catalog=RoomCharge;User ID=sa;Password=***"
第二步,使用dataadpater 对象
Dim myAD As NewSqlDataAdapter("select userID as 用户名,level as 用户级别,loginDate as登录日期,loginTime as 登录时间,computer as 计算机名 from T_UserOnWorkInfo", conn)
Dim dt As New DataTable
第三步,执行命令(必须先打开数据库)
conn.Open()
myAD.Fill(dt)
Conn.close()
四、DataReader
1、介绍
一次一笔向下循序的读取数据源中的数据
这些数据是只读的,并不允许作其它的操作
节省资源而且效率很好
可以降低网络的负载
2、属性和方法
属性 |
说明 |
FieldCount |
取得字段的个数 |
HasMoreResults |
表示是否有多个结果,本属性和SQL Script 搭配使用。 |
IsClosed |
判断DataReader对象是否关闭状态 |
HasMoreRows |
只读,表示是否还有资料未读取 |
Item |
只读,本对象是集合对象,以键值(Key)或索引值(Index)的方式取得纪录中某个字段的数据 |
RowFetchCount |
用来设定一次取回多少笔记录,预设为值为1 笔 |
方法 |
说明 |
Read() |
返回SqlDataReader的第一条,并一条一条向下读取 |
GetName() |
取得字段名称 |
GetDataTypeName() |
取得字段数据类型 |
GetValue() |
取得字段值 |
Close() |
关闭DataReader对象 |
GetOrdinal() |
查询字段所在位置 |
GetValues() |
把所有查询记录数据赋予数组 |
IsNull |
判断字段是否为null值 |
NextResult() |
用来和SQL Script 搭配使用,表示取得下一个结果 |
3、实例
第一步,创建数据库连接
string conn= connectionString="Data Source=.;Initial Catalog=RoomCharge;User ID=sa;Password=***"
第二步,使用DataReader对象
Dim Sqlserver AsString = "select * from T_UserInfo where userID='" &enUser.UserID & "'"
Dim cmd AsSqlCommand = New SqlCommand(Sqlserver, conn)
Dim read AsSqlDataReader
第三步,执行命令(必须先打开数据库)
conn.Open()
read =cmd.ExecuteReader
read.Read()
conn.Close()
五、调用
1、图示
Connection对象管理与数据源的连接。Command对象允许与数据源交流并发送命令给它。为了对进行快速的只“向前”地读取数据,使用DataReader。如果想使用断开数据,使用DataSet并实现能进行读取或者写入数据源的DataAdapter。
2、数据访问者从数据库中提取数据(连接类)
方式一:数据库—Connection—Command—数据访问者
方式二:数据库—Connection—Command—DataReader—数据访问者
六、异常处理
异常:在运行时发生的错误
异常处理:预知可能发生的异常,在程序中编码处理
1、使用 try…catch 块捕获和处理异常
2、finally 块——无论是否发生异常,都会执行
3、无异常时要显示的部分
注:C#中using()机制,用完后自动关闭