第三讲: DataSet 与DataAdapter初步
1. 什么是DataSet?
数据集(DataSet)是独立于数据存储区且与之不同的数据结构,是一种代表关系数据的内存驻留结构
2.为什么要使用DataSet?
将数据库读到数据集,从而进行无连接的操作
3.关于DataSet
DataSet是ADO.NET中的关键对象,所有复杂的操作都要使用它.DataSet 包含一组相关的DataTable对象,代表要使用的数据库表,每一个DataTable对象都有子 DataRow 和DataColumn对象,分别代表数据库的行和列.通过这些对象,可以获取表,行和列的所有元素.
4什么是DataAdapter对象
DataAdapter对象充当数据库和ADO.NET对象模型中断开连接的对象之间的桥梁
DataAdapter对象在DataSet与源数据之间起到的桥梁的作
5.DataAdapter的主要作用
DataAdapter对象会填充DataSet对象中表,而且能读取缓存的更改并将其提交给数据
6.DataAdapter对象的两个主要方法
Fill方法:填充数据集
Update方法向数据库提交存储的DataSet的更改
用DataAdapter对象的Fill方法将数据填充到DataSet表中,然后直接对DataSet进行操作,对DataSet的操作等同于对数据库中的表的操作,因为DataSet是断开的所以只有影响DataSet本身不会影响数据库,这时就要利用Update方法去读取缓存的更改并将其提交给数据库
Web.Config
<connectionStrings >
<add name ="connectinString" connectionString ="Data Source=.;Initial Catalog=test;user id=sa;password =meng1986"/>
</connectionStrings>
Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string strCon = System.Configuration.ConfigurationManager.ConnectionStrings["connectinString"].ToString();
SqlConnection sqlCon = new SqlConnection(strCon);
sqlCon.Open();
//将SQL数据全部取出来,以下三句作用:将数据库中的表填充到ds当中
SqlDataAdapter sqlAda = new SqlDataAdapter("select * from info",sqlCon );
DataSet ds = new DataSet();
sqlAda.Fill(ds, "info");//将数据表info填充到ds中
//下面将对ds中的表进行操作,而不是对数据库中info表进行直接操作因为了DataSet与数据库是断开的
//ds.Tables []返回 一个表的所有集合
if (ds.Tables[0].Rows.Count == 0)//将ds所有表中的行数返回过来,判断是否为空
{
Response.Write("数据库中没有数据");
}
else
{
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
Response.Write(ds.Tables["info"].Rows [i][1]);
Response.Write(ds.Tables["info"].Rows[i]["sex"]);
Response.Write("<br>");
}
}
sqlCon.Close();
}
}