问:ADO.Net是什么
答:ADO 是 .Net 对 DataBase 操作的相关类的集合。
ADO(常用)的相关对象
1、连接对象:Connection
2、命令对象:Command
3、数据读取器对象:DataReader
4、 数据适配器对象: DataAdapter
5、数据集对象: DataSet
(Sql)ADO.NET中常用的对象有:
SqlConnection:该对象表示与数据库服务器进行连接。
SqlCommand:该对象表示要执行的SQL命令。
SqlParameter;该对象代表了一个将被命令中标记代替的值。
SqlDataAdapter:该对象表示填充命令中的DataSet对象的能力。
DataSet:表示命令的结果,可以是数据集,并且可以同BulletedList进行绑定。
Connection 对象
Connection 对象主要是开启程序和数据库之间的连结。
要访问一个数据源,先必须建立一个到它的连接。这个连接指明了它的 数据库服务器、数据库名字、用户名、密码以及连接数据库所需要的其它参数。
command对象通过使用connection对象来知道是在哪个数据库上面执行命令。
SQL使用System.Data.SqlClient命名
连接SQL数据库,则需要创建SqlConnection对象,SqlConnection对象创建代码如下所示。
SqlConnection con = new SqlConnection(); //创建连接对象
con.ConnectionString = "server='(local)';database='mytable';uid='sa';pwd='sa'"; //设置连接字串
上述代码创建了一个SqlConnection对象,并且配置了连接字串。SqlConnection对象专门定义了一个专门接受连接字符串的变量ConnectionString,当配置了ConnectionString变量后,就可以使用Open()方法来打开数据库连接
第一种写法:
string myConnstr = "Server= 服务器名;DataBase=数据库名;Uid=sa;pwd=";
SqlConnection myCon = new SqlConnection(myConnstr);
string mySql = "select * from 表名";//一条Sql语句
SqlCommand myCmd = new SqlCommand(mySql,myCon);
myCon.Open();
第二种写法:
string myConnstr = "Server= 服务器名;DataBase=数据库名;Uid=sa;pwd=";
string mySql = "select * from 表名";//一条Sql语句
using (SqlConnection myCon = new SqlConnection(myConnstr))
{
using (SqlCommand myCmd = new SqlCommand(mySql, myCon))
{
myCon.Open();
}
}
Command对象
Command对象可以使用数据命令直接与数据源进行通信。
成功与数据建立连接后,就可以用Command对象来执行查询、修改、插入、删除等命令;Command 对象主要用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection 对象上,也就是Command 对象是通过Connection 对象连结到数据源。
SqlCommand myCmd = new SqlCommand();
myCmd.Connection = myConn;
myCmd.CommandText = "select * from 表名";
Command对象常用的方法有:
ExecuteReader()方法
ExecuteScalar()方法
ExecuteNonQuery()方法
ExecuteScalar()方法
Command的Execute方法提供了返回单个值的功能。在很多时候,开发人员需要获取刚刚插入的数据的ID值,或者可能需要返回Count(*),Sum(Money)等聚合函数的结果,则可以使用ExecuteScalar方法
ExecuteNonQuery()方法
当指定了一个SQL语句,就可以通过ExecuteNonQuery方法来执行语句的操作。ExecuteNonQuery不仅可以执行SQL语句,开发人员也可以执行存储过程或数据定义语言语句来对数据库或目录执行构架操作
ExecuteReader()方法
读取数据集到应用程序客户端。
关于command的一些方法的说明
ExecuteNonQuery | 对连接执行 Transact-SQL 语句并返回受影响的行数。 (重写DbCommand..::.ExecuteNonQuery()()()。) |
ExecuteReader | 已重载。 将 CommandText 发送到 Connection 并生成一个 SqlDataReader。 |
ExecuteScalar | 执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。 (重写DbCommand..::.ExecuteScalar()()()。) |
ExecuteXmlReader | 将 CommandText 发送到Connection 并生成一个XmlReader 对象。 |
DataReader对象
许多数据操作要求你只是读取一串数据。DataReader对象允许你获得从Command对象的 select 语句得到的结果。考虑性能的因素,从DataReader返回的数据都是快速的且只是“向前”的数据流。这意味着你只能按照一定的顺序从数据流中取出数据。这对于速度来说是有好处的,但是如果你需要操作数据,更好的办法是使用DataSet。
DataAdapter类
某些时候你使用的数据主要是只读的,并且你很少需要将其改变至底层的数据源。同样一些情况要求在内存中缓存数据,以此来减少并不改变的数据被数据库调用的次数。DataAdapter通过断开模型来帮助你方便的完成对以上情况的处理。当在一单批次的对数据库的读写操作的持续的改变返回至数据库的时候,DataAdapter 填充(fill)DataSet对象。DataAadapter包含对连接对象以及当对数据库进行读取或者写入的时候自动的打开或者关闭连接的引用。另外,DataAdapter包含对数据的SELECT、INSERT、UPDATE和DELETE操作的Command对象引用。你将为DataSet中的每一个Table都定义DataAadapter,它将为你照顾所有与数据库的连接。所有你将做的工作是告诉DataAdapter什么时候装载或者写入到数据库。
DataSet对象
DataSet对象是数据在内存中的表示形式。它包括多个DataTable对象,而DataTable包含列和行,就象一个普通的数据库中的表。你甚至能够定义表之间的关系来创建主从关系(parent-child relationships)。DataSet是在特定的场景下使用――帮助管理内存中的数据并支持对数据的断开操作的。DataSet是被所有Data Providers使用的对象,因此它并不像Data Provider一样需要特别的前缀。