ADO.NET学习之SqlDataAdapter
ADO.NET提供了2中data access模式
1.Connection oriented data access
2.Disconnected data access
下面说第二种Disconnected data access,2个类SqlDataAdapter和DataSet
DataSet 是个内存数据存储,可以持有一个或多个table。DataSet 只是持有数据,并不和底层的数据表做交互。DataSet对象并不知晓底层的数据源。
要在DataSet中提取记录并将它们填入表中,需要使用另一个ADO.NET对象DataAdapter(如SqlDataAdapter)
为了让DataAdapter能够编辑、删除或者添加行,需要设定DataAdapter对象的InsertCommand、UpdateCommand和DeleteCommand属性。利用DataAdapter填充DataSet时,必须设定SelectCommand
DataAdapter的方法:
Fill()执行SelectCommand中的查询后,向DataSet添加一个DataTable。如果查询返回多个结果集,该方法将一次添加多个DataTable对象。还可以用该方法向现有的DataTable添加数据Update()检查DataTable中的所有变化,并执行适当的InsertCommand、UpdateCommand和DeleteCommand操作,为数据源执行批量更新
步骤:
1.创建SqlDataAdapter 对象,指定一个命令和一个connection对象
string connectionString = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
SqlConnection connection = new SqlConnection(connectionString);
string selectQuery = "Select * from tblStudents";
SqlDataAdapter dataAdapter = new SqlDataAdapter(selectQuery, connection);
2.调用SqlDataAdapter.Fill() 方法
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet, "Students");
3.DataSet中数据的改变并不会影响底层的数据
4.要更新底层数据库表中的数据,调用SqlDataAdapter.Update() 方法
dataAdapter.Update(DataSetObject, "Students");
SqlDataAdapter
在前面的章节中讲到了SqlDataReader,是 connection oriented,意味着需要一个活动的,被打开连接的 data source。而SqlDataAdapter 和 DataSet给我们提供了一种disconnected data access model
创建SqlDataAdapter对象,参数
1.执行的sql命令
2.执行命名的connection
如下的例子:
string CS = ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
SqlDataAdapter dataAdapter = new SqlDataAdapter("select * from tblProductInventory02", con);
DataSet dataset = new DataSet();
dataAdapter.Fill(dataset);
GridView1.DataSource = dataset;
GridView1.DataBind();
}
1.创建SqlDataAdapter对象,需要的参数(SqlCommandText 和 connection对象)
2.创建DataSet对象,DataSet是内存数据存储,可存储表,就像数据库一样
3.Fill() 方法,打开数据的连接,执行sql命令,使用数据填充dataset,然后关闭数据库连接。
使用SqlDataAdapter执行存储过程
创建如下的存储过程:
Create procedure spGetProductInventory
as
Begin
Select ProductId, ProductName, UnitPrice
from tblProductInventory

本文详细介绍了ADO.NET中的SqlDataAdapter和DataSet的使用,包括如何通过SqlDataAdapter执行存储过程,填充DataSet,以及DataSet的Cache机制。还讨论了DataSet、DataTable和DataColumn的理解及其相互关系。
最低0.47元/天 解锁文章
1万+

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



