1.ADO.NET是一组向.NET程序员公开数据访问服务的类。
1.1.ADO.NET支持两种访问数据的模型:无连接模型和连接模型
Connection对象是一个连接对象,主要功能是建立与物理数据库的连接,
其中主要包括4种访问数据库的对象类,也可称为出具提供程序
a.SQLServer数据提供程序,位于System.Data.SqlClient命名空间
b.ODBC 数据提供程序,位于System.Data.Odbc命名空间
c.OLEDB 数据提供程序,位于System.Data.OleDb命名空间
3.1 Command对象是一个数据命令对象,主要功能是向数据库发送查询、更新、删除、修改操作的SQL语句,
3.2 Command对象主要有以下几种方式:
a.SqlCommand:用于向SQL Server数据库发送SQL语句,位于System.Data.SqlClient命名空间。
b.OleDbcommand:用于向使用OLEDB公开的数据库发送SQL语句,位于System.Data.OleDb命名空间。
c.OdbcCommand:用于向ODBC公开的数据库发送SQL语句,位于System.Data.Odbc命名空间。
d.OracleCommand:用于向Oracle数据库发送SQl语句,位于System.Dsts.OracleClient
3.3设置数据源类型
Command对象有3个重要的属性,分别是Connection属性、CommandText属性,CommandType属性
Connection属性用于设置SqlCommand使用的SqlConnection.
CommandText属性用于设置要对数据源执行的SQL语句或存储过程。
CommandType属性用于设置要对数据源执行的SQL语句或存储过程
CommandType属性用于指定CommandText的类型,CommandType属性的值是CommandType枚举值:
StoredProcedure:存储过程的名字。TableDirect:表的名称。Text:SQL文本命令
3.4执行SQL语句
3.4.1 ExecuteNonQuery方法:执行SQL语句,并返回受影响的行数,
在使用SqlCommand向数据库发送增、删、改命令时,通常使用ExecuteNonQuery方法执行发送的SQL语句
注:如果想要执行存储过程,应将CommandType属性设置为StoreProcedure,将CommandText属性设置为存储过程的名称。
3.4.2 ExecuteReader方法:执行SQL语句,并生成一个包含数据的SqlDataReader对象的实例。
3.4.3 ExecuteScalar方法:执行SQL语句,返回结果集中的第一行的第一列的值
ExecuteScalar方法通常与聚合函数一起使用,
常用的聚合函数: AVG(expr) 求列平均值 count(expr)/count(*) 统计列数 MAX(expr) 求列中最大值
4.读取数据:DataReader对象
4.1 DataReader对象概述:DataReader对象是数据读取器对象,提供只读向前的游标,如果应用程序需要每次从数据库中取出最新的数据,
或者只是需要快速读取数据,并不需要修改数据,那么就可以使用DataReader对象进行读取。
不同的数据库连接对应不同的DataReader类型。
a.在System.Data.SqlClient命名空间下,可以调用SqlDataReader类
b.在System.Data.OleDb命名空间下,可以调用OleDbDataReader类
c.在System.Data.Odbc命名空间下,可以调用OdbcDataReader类
d.在System.Data.Oracle命名空间下,可以调用OracleDataReader类
4.2 判断查询结果中是否有值
通过SqlDataReader对象的HasRows属性获取一个值,该指示SqlDataReader是否包含一行或多行 包含则为true 反之为false,即判断查询结果中是否有值
4.3读取数据:通过ExecuteReader方法,根据SQL语句创建一个SqlDataReader对象后,再调用SqlDataReader对象的Read方法读取数据
5 数据适配器:DataAdapter对象
5.1 DataAdapter对象概述:是一个数据适配器对象,是DataSet与数据源之间的桥梁,
5.1.1 DataAdapter对象提供了4个属性,用于实现与数据源之间的互通
1.SelectCommand属性:向数据库发送查询SQL语句
2.DeleteCommand属性:向数据库发送删除SQL语句
3.InsertCommand属性:向数据库发送插入SQL语句
4.UpdateCommand属性:向数据库发送更新SQL语句
5.1.2 主要的方法
1.public int Fill(DataSet ds,string str)
ds:要用记录和架构填充的DataSet,str用于表映射的源表的名称,返回成功添加或刷新的行数
注意:在DataTable对象上可以多次使用Fill方法。如果主键存在,则传入行会与已有的行合并,如果主键不存在,则会追加到dataTable中
2.public int Update(DataTable dt)
dt:用于更新数据源的DataTable。返回DataSet中成功更新的行数
5.1.3 填充DataSet数据集
通过DataAdapter对象的Fill方法填充DataSet数据集,Fill方法使用Select语句从数据源中检索数据。
与select命令关联的Connection对象必须有效,但不需要将其打开。
6.数据集:DataSet对象
6.1概述:DataSet对象就像存放于内存中的一个小型数据库
6.2合并DataSet内容(注意当DataSet对象为null时,无法进行合并)
使用DataSet的Merge方法将DataSet、DataTable、DataRow数组的内容并入现有的DataSet中、
public voidMerge(DataSet ds,bool bl,MissingSchemaAction msa)
ds:需要合并的DataSet ,bl:是否保留当前DataSet中的更改,保留则为true;否则为false
msa:MissingSchemaAction枚举值之一,枚举值说明如下:
1.Add 添加必须的列以完成架构
2.AddWithKey:添加必须的列以完成架构,
用户可以在每个DataTable上显示设置主键的约束,这将确保对现有记录匹配的传入记录进行追加
3.Error: 如果缺少指定的列映射,则生成InvalidOperationException
4.Ignore:忽略额外列
6.3复制DataSet内容
Copy方法会创建包含架构和数据的DataSet的原样副本
1.1.ADO.NET支持两种访问数据的模型:无连接模型和连接模型
无连接模型将数据下载到客户机器上,并在客户机上将数据封装到内存中,然后可以像访问本地关系数据库一样访问内存中的数据; 连接模型依赖于逐记录的访问,这种访问要求打开并保持与数据源的连接
2.连接数据库:Connection对象Connection对象是一个连接对象,主要功能是建立与物理数据库的连接,
其中主要包括4种访问数据库的对象类,也可称为出具提供程序
a.SQLServer数据提供程序,位于System.Data.SqlClient命名空间
b.ODBC 数据提供程序,位于System.Data.Odbc命名空间
c.OLEDB 数据提供程序,位于System.Data.OleDb命名空间
d.Oracle 数据提供程序,位于System.Data.OracleClient命名空间
3.执行SQL语句:Command对象3.1 Command对象是一个数据命令对象,主要功能是向数据库发送查询、更新、删除、修改操作的SQL语句,
3.2 Command对象主要有以下几种方式:
a.SqlCommand:用于向SQL Server数据库发送SQL语句,位于System.Data.SqlClient命名空间。
b.OleDbcommand:用于向使用OLEDB公开的数据库发送SQL语句,位于System.Data.OleDb命名空间。
c.OdbcCommand:用于向ODBC公开的数据库发送SQL语句,位于System.Data.Odbc命名空间。
d.OracleCommand:用于向Oracle数据库发送SQl语句,位于System.Dsts.OracleClient
3.3设置数据源类型
Command对象有3个重要的属性,分别是Connection属性、CommandText属性,CommandType属性
Connection属性用于设置SqlCommand使用的SqlConnection.
CommandText属性用于设置要对数据源执行的SQL语句或存储过程。
CommandType属性用于设置要对数据源执行的SQL语句或存储过程
CommandType属性用于指定CommandText的类型,CommandType属性的值是CommandType枚举值:
StoredProcedure:存储过程的名字。TableDirect:表的名称。Text:SQL文本命令
3.4执行SQL语句
3.4.1 ExecuteNonQuery方法:执行SQL语句,并返回受影响的行数,
在使用SqlCommand向数据库发送增、删、改命令时,通常使用ExecuteNonQuery方法执行发送的SQL语句
注:如果想要执行存储过程,应将CommandType属性设置为StoreProcedure,将CommandText属性设置为存储过程的名称。
3.4.2 ExecuteReader方法:执行SQL语句,并生成一个包含数据的SqlDataReader对象的实例。
3.4.3 ExecuteScalar方法:执行SQL语句,返回结果集中的第一行的第一列的值
ExecuteScalar方法通常与聚合函数一起使用,
常用的聚合函数: AVG(expr) 求列平均值 count(expr)/count(*) 统计列数 MAX(expr) 求列中最大值
MIN(expr) 求列中最小值 SUM(expr) 列值求和
//连接SqlServer数据库通过SQL查询数据示例代码
try
{
string ConStr = "server=.;database=TGTest;uid=sa;pwd=Sa123";
SqlConnection conn = new SqlConnection(ConStr);
conn.Open(); //打开数据库连接
if (conn.State == ConnectionState.Open)
{
Console.WriteLine("数据库连接已打开");
Console.ReadLine();
SqlCommand cmd = new SqlCommand(); //创建一个SqlCommand对象
cmd.Connection = conn; //设置Connection属性,指定其使用conn连接数据库
cmd.CommandText = "select * from dbo.Tab_User"; //设置CommandText属性,设置其执行的SQL语句
cmd.CommandType = CommandType.Text; //设置CommandType属性为Text,使其只执行SQL语句文本形式
//int i = Convert.ToInt32(cmd.ExecuteScalar()); //使用ExecuteScalar方法返回查询结果集中第一行第一列的值
//Console.WriteLine(i);
//Console.ReadLine();
SqlDataReader sdr = cmd.ExecuteReader(); //使用ExecuteReader方法实例化一个SqlDataReader对象。
//while (sdr.Read()) //调用while语句,读取SqlDataReader
//{
// Console.WriteLine(sdr[1]);
// Console.ReadLine();
//}
if (sdr.HasRows) //使用HasRows属性判断结果中是否有数据
{
Console.WriteLine("查询存在数据");
Console.ReadLine();
}
// conn.Dispose(); //释放连接
conn.Close(); //关闭数据库连接
if (conn.State == ConnectionState.Closed)
{
Console.WriteLine("数据库连接已关闭");
Console.ReadLine();
}
}
}
catch(Exception e)
{
Console.WriteLine("数据库连接异常"+e.Message);
Console.ReadLine();
}
4.读取数据:DataReader对象
4.1 DataReader对象概述:DataReader对象是数据读取器对象,提供只读向前的游标,如果应用程序需要每次从数据库中取出最新的数据,
或者只是需要快速读取数据,并不需要修改数据,那么就可以使用DataReader对象进行读取。
不同的数据库连接对应不同的DataReader类型。
a.在System.Data.SqlClient命名空间下,可以调用SqlDataReader类
b.在System.Data.OleDb命名空间下,可以调用OleDbDataReader类
c.在System.Data.Odbc命名空间下,可以调用OdbcDataReader类
d.在System.Data.Oracle命名空间下,可以调用OracleDataReader类
4.2 判断查询结果中是否有值
通过SqlDataReader对象的HasRows属性获取一个值,该指示SqlDataReader是否包含一行或多行 包含则为true 反之为false,即判断查询结果中是否有值
4.3读取数据:通过ExecuteReader方法,根据SQL语句创建一个SqlDataReader对象后,再调用SqlDataReader对象的Read方法读取数据
5 数据适配器:DataAdapter对象
5.1 DataAdapter对象概述:是一个数据适配器对象,是DataSet与数据源之间的桥梁,
5.1.1 DataAdapter对象提供了4个属性,用于实现与数据源之间的互通
1.SelectCommand属性:向数据库发送查询SQL语句
2.DeleteCommand属性:向数据库发送删除SQL语句
3.InsertCommand属性:向数据库发送插入SQL语句
4.UpdateCommand属性:向数据库发送更新SQL语句
5.1.2 主要的方法
1.public int Fill(DataSet ds,string str)
ds:要用记录和架构填充的DataSet,str用于表映射的源表的名称,返回成功添加或刷新的行数
注意:在DataTable对象上可以多次使用Fill方法。如果主键存在,则传入行会与已有的行合并,如果主键不存在,则会追加到dataTable中
2.public int Update(DataTable dt)
dt:用于更新数据源的DataTable。返回DataSet中成功更新的行数
5.1.3 填充DataSet数据集
通过DataAdapter对象的Fill方法填充DataSet数据集,Fill方法使用Select语句从数据源中检索数据。
与select命令关联的Connection对象必须有效,但不需要将其打开。
6.数据集:DataSet对象
6.1概述:DataSet对象就像存放于内存中的一个小型数据库
6.2合并DataSet内容(注意当DataSet对象为null时,无法进行合并)
使用DataSet的Merge方法将DataSet、DataTable、DataRow数组的内容并入现有的DataSet中、
public voidMerge(DataSet ds,bool bl,MissingSchemaAction msa)
ds:需要合并的DataSet ,bl:是否保留当前DataSet中的更改,保留则为true;否则为false
msa:MissingSchemaAction枚举值之一,枚举值说明如下:
1.Add 添加必须的列以完成架构
2.AddWithKey:添加必须的列以完成架构,
用户可以在每个DataTable上显示设置主键的约束,这将确保对现有记录匹配的传入记录进行追加
3.Error: 如果缺少指定的列映射,则生成InvalidOperationException
4.Ignore:忽略额外列
6.3复制DataSet内容
Copy方法会创建包含架构和数据的DataSet的原样副本

本文介绍 ADO.NET 的核心组件,包括 Connection 对象用于连接数据库,Command 对象用于执行 SQL 语句,DataReader 对象用于读取数据,DataAdapter 对象作为数据源与 DataSet 之间的桥梁,以及 DataSet 对象作为内存中的小型数据库。
3315

被折叠的 条评论
为什么被折叠?



