1.ADO.Net提供了对sqlserver等数据源的一致访问,并且对通过oledb,xml公开的数据源访问。凡是中间语言符合xml语言标准的,都可以在.Net平台上对数据进行操作;提高了跨平台的适用能力。
2.DataSet是ADO.Net的核心部分,它可以被称为内存中的数据库。
3.ADO.Net为了实现与各类数据库的连接,ADO.Net设置了四个接口,以接口的形式与数据连接。这些接口为IDbConnection,IDbCommand,IDbDataAdapter,IDataReader.为了实现接口的连接,它抽象出了一下4个类:DbConnection,DbCommand,DbDataAdapter,DataReader来处理数据库或数据源,因此为实现不同的数据库操作,为不同的数据库或数据源提供了相应的连接类。以sqlserver数据库为例:SqlConnection,SqlCommand,SqlDataAdapter,SqlDataReader.
4.Connection对象,提供与数据源的连接等功能。
例:SqlConnection 继承与DbConnection。
Command 对象,可以执行对数据源的操作命令,如,读取,插入,更新,删除(可以执行sql语句或存储过程)。
DataReader对象,以只读的方式读取数据(以数据留的方式从数据库或数据源中读出数据)。
DataAdapter对象,是数据集合数据源之间的桥梁,用来填充数据集或数据表(DataTable)将数据加载到内存中。
DataSet对象,提供一种断开式的数据访问机制,是数据主流在内存中的一种表示形式;并且还可以对数据进行检索。
5.使用sqlserver中该类对象
(1)SqlConnecton对象继承与DbConnection,主要用于和数据库的连接。常用属性如下:
ConnectionString 连接的字符串
Database 连接的数据库名称
server 服务器名称
常用方法:
open() 打开连接
close() 关闭连接
在使用SqlConnection时,首先需要实例化一个SqlConnection对象
SqlConnection con=new SqlConnection(@"server=.\SQLEXPRESS;database=UserInf;uid=sa;pwd=;");
con.open()//打开数据库
con.close()//关闭数据库
(2)Sqlommand对象,执行对数据库的操作(执行sql语句或存储过程)
常用属性:
commandText 执行的sql语句或存储过程
CommandType 指定CommandText值得形式(sql语句或者存储过程)
CommandType.Text 执行sql语句(默认)
CommandType.StoredProcedure 执行存储过程
Connection 与实例相关的SqlConnection实例
Parameters 参数集合,当前SqlCommand实例的擦书列表
在是用SqlCommand时也要实例化。
SqlCommand cmd=new SqlCommand(sql语句,con);或者借助Sqlconnection对象来实例化
SqlCommand cmd =con.CreateCommand();
cmd.CommandType=SqlDataSourceCommandType.Text;
cmd.CommandText="sql语句";
使用参数化的sql语句:
string sql="insert into User(userName,pwd) values(@userName,@pwd)";
cmd.parameters.Add(new SqlParameter("@userName",username));
cmd.Parameters.Add(new SqlParameter("@pwd",pwd));
常用方法:
ExcuteNonQuery() 执行sql语句或存储过程,并返回受影响的行数(为int类型)。
Excutescalar() 执行sql语句或存储过程,并返回结果集中的首行首列。
ExecuteReaer() 执行sql语句或者存储过程,并返回SqlDataReader对象。
(3)SqlDataReader对象,可以从数据源中读取或者检索数据读对象提供一种行前的,流行的。读取数据的形式,该对象在读取数据时必须保持与数据库的连接。
特征如下:
a.只读,不能执行删除,修改等操作。
b.读取方式是向前的,不能再次访问已被访问的数据。
c.直接把数据传递给页面中的对象,不能缓存在读取的数据。
d.读取效率高(数据少时,推荐使用)
e.读取完成之后调用close()方法关闭,SqlDataReader对象,否则会一直占用资源。
常用属性:
HasRows SqlDataReader 对象是否存在数行
FieldCount 当前行中的列数(int)
IsClosed 列的值
常用方法:
close() 关闭SqlDataReader对象
Read() 读取下一条记录
IsDBNull(int) 指定列是否为数据库空值
GetFieldType(int) 获取指定列的类型
GetName(int) 获取指定列的名称
GetOrdinal(列名) 获取指定列的序号
GetString(int) 获取指定列的值
注意:SqlDataReader不可以直接实例化,需要借助于SqlCommand对象实例化,产生一个向前读取的游标。
SqlDataReader read=cmd.ExcuteReader();
if(read.HasRow)
{
while(read.Read())
{
read[字段名];//读取指定列中,指定字段名的值
}
}
DataSet部分
1.DataSet(using System.data)可以看成内存中的数据库,可以实现断开式的数据库操作:
数据库 内存
database DataSet
table DataTable
Row DataRow
Column DataColumn
2.SqlDataAdapter 用于将数据库和DataSet连接起来。表示一组数据库命令和一个数据库连接,用来填充DataSet或DataTable。调用Fill()方法。
例:SqlDataAdapter sdr=new SqlDataAdapter(SqlCommand)
// DataSet ds=new DataSet();
// sdr.Fill(ds,"表名")
// DataTable dt=ds.Tables["表名"];
DataTable dt=new DataTable();
sdr.Fill(dt);
foreach(DataRow dr in dt.Rows)
{
dr[int column];//或者dr["字段名"]
}