ADO.NET学习之SqlDataAdapter,DataSet

本文详细介绍了ADO.NET中的SqlDataAdapter和DataSet的使用,包括如何通过SqlDataAdapter执行存储过程,填充DataSet,以及DataSet的Cache机制。还讨论了DataSet、DataTable和DataColumn的理解及其相互关系。
摘要由CSDN通过智能技术生成

ADO.NET学习之SqlDataAdapter

ADO.NET提供了2中data access模式
1.Connection oriented data access
2.Disconnected data access

下面说第二种Disconnected data access,2个类SqlDataAdapterDataSet

DataSet 是个内存数据存储,可以持有一个或多个tableDataSet 只是持有数据,并不和底层的数据表做交互。DataSet对象并不知晓底层的数据源。

要在DataSet中提取记录并将它们填入表中,需要使用另一个ADO.NET对象DataAdapter(如SqlDataAdapter
为了让DataAdapter能够编辑、删除或者添加行,需要设定DataAdapter对象的InsertCommandUpdateCommandDeleteCommand属性。利用DataAdapter填充DataSet时,必须设定SelectCommand

DataAdapter的方法:

  • Fill()执行SelectCommand中的查询后,向DataSet添加一个DataTable。如果查询返回多个结果集,该方法将一次添加多个DataTable对象。还可以用该方法向现有的DataTable添加数据
  • Update()检查DataTable中的所有变化,并执行适当的InsertCommandUpdateCommandDeleteCommand操作,为数据源执行批量更新

步骤:
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。而SqlDataAdapterDataSet给我们提供了一种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对象,需要的参数(SqlCommandTextconnection对象)
2.创建DataSet对象,DataSet是内存数据存储,可存储表,就像数据库一样
3.Fill() 方法,打开数据的连接,执行sql命令,使用数据填充dataset,然后关闭数据库连接。

使用SqlDataAdapter执行存储过程

创建如下的存储过程:

Create procedure spGetProductInventory 
as
Begin
 Select ProductId, ProductName, UnitPrice 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值