填充DataSet数据集
DataSet数据集表示来自一个或多个数据源数据的本地副本,是数据的集合,也可以看作是一个虚拟的表。DataSet对象允许Web窗体半独立于数据源运行。DataSet能够提高程序性能,因为DataSet从数据源中加载数据后,就会断开与数据源的连接,开发人员可以直接使用和处理这些数据,当数据发生变化并要更新时,则可以使用DataAdapter重新连接并更新数据源。DataAdapter可以进行数据集的填充,创建DataAdapter对象的代码如下所示。
SqlDataAdapter da=new SqlDataAdapter("select * from news",con); //创建适配器
上述代码创建了一个DataAdapter对象并初始化DataAdapter对象,DataAdapter对象的构造函数允许传递两个参数初始化,第一个参数为SQL查询语句,第二个参数为数据库连接的SqlConnection对象。初始化DataAdapter后,就需要将返回的数据的集合存放到数据集中,示例代码如下所示。
DataSet ds = new DataSet(); //创建数据集
da.Fill(ds, "tablename"); //Fill方法填充
上述代码创建了一个DataSet对象并初始化DataSet对象,通过DataAdapter对象的Fill方法,可以将返回的数据存放到数据集DataSet中。DataSet可以被看作是一个虚拟的表或表的集合,这个表的名称在Fill方法中被命名为tablename。
====================================================================================================================================
显示 DataSet
当返回的数据被存放到数据集中后,可以通过循环语句遍历和显示数据集中的信息。当需要显示表中某一行字段的值时,可以通过DataSet对象获取相应行的某一列的值,示例代码如下所示。
ds.Tables["tablename"].Rows[0]["title"].ToString(); //获取数据集
上述代码从DataSet对象中的虚表tablename中的第0行中获取title列的值,当需要遍历DataSet 时,可以使用DataSet对象中的Count来获取行数,示例代码如下所示。
for (int i = 0; i < ds.Tables["tablename"].Rows.Count; i++) //遍历DataSet数据集
{
Response.Write(ds.Tables["tablename"].Rows[i]["title"].ToString());
}
DataSet不仅可以通过编程的方法来实现显示,也可以使用ASP.NET中提供的控件来绑定数据集并显示。ASP.NET中提供了常用的显示DataSet数据集的控件,包括Repeater、DataList、GridView等数据绑定控件。将DataSet数据集绑定到DataList控件中可以方便的在控件中显示数据库中的数据并实现分页操作,示例代码如下所示。
DataList1.DataSource = ds; //绑定数据集
DataList1.DataMember = "tablename";
DataList1.DataBind(); //绑定数据
上述代码就能够将数据集ds中的数据绑定到DataList控件中。DataList控件还能够实现分页、自定义模板等操作,非常方便开发人员对数据开发。
=============================================================================================================================================
DataAdapter适配器对象
在创建了数据库连接后,就需要对数据集DataSet进行填充,在这里就需要使用DataAdapter对象。在没有数据源时,DataSet对象对保存在Web窗体可访问的本地数据库是非常实用的,这样降低了应用程序和数据库之间的通信次数。然而DataSet必须要与一个或多个数据源进行交互,DataAdapter就提供DataSet对象和数据源之间的连接。
若要使一个使用DataAdapter对象的DataSet要能够和一个数据源之间交换数据,则可以使用DataAdapter属性来指定需要执行的操作,这个属性可以是一条SQL语句或者是存储过程,示例代码如下所示。
string str = "server='(local)';database='mytable';uid='sa';pwd='sa'"; //创建连接字串
SqlConnection con = new SqlConnection(str);
con.Open(); //打开连接
SqlDataAdapter da = new SqlDataAdapter("select * from news", con); //DataAdapter对象
con.Close(); //关闭连接
上述代码创建了一个DataAdapter对象,DataSet对象可以使用该对象的Fill方法来填充数据集。