DataSet在ADO.Net中称为:断开式数据访问,也被称为是数据的集合,临时数据库,内存数据库,多用于多层应用程序之间传递数据 ,现今一般都是转换为List<T>集合后使用(T实体类)
ADO.Net中提供了数据集的机制,就是使用SqlDataAdapter类将查询的结果通过Fill()方法填充DataSet中,存储在DataSet中的数据称为数据集,SqlDataAdapter类是DataSet和数据库之间沟通的桥梁;使用DataSet存储的数据即使连接断开或者服务器断开都不影响对数据的读取
SqlDataAdapter类的底层代码还是使用SqlCommand和SqlDataReader类来实现的,SqlDataAdapter类只是对它们进行了封装,使用SqlDataAdapter类它会自动打开关闭连接
声明一个DataSet对象的临时数据库,然后需要使用到DataAdapter类通过其构造方法得到数据,最后通过DataAdapterl类对象的Fill()方法将数据装填入DataSet临时数据库中,还可以通过Fill()方法进行数据分页
//窗体加载事件
private void Form1_Load(object sender, EventArgs e)
{
//连接字符串
string constr = "Data Source=.;Initial Catalog=School;Integrated Security=True";
//查询出 Student 表的数据
string sql = "select * from Student";
//临时数据库 School临时数据库名称
DataSet ds = new DataSet("School");
using (SqlDataAdapter adapter = new SqlDataAdapter(sql, constr))
{
//通过Fill()将查询出的数据集存储在ds中
//adapter.Fill(ds);
//内部创建表,表名stu
//adapter.Fill(ds,"stu");
//通过Fill()将数据进行分页
//ds 临时数据库
//0 从第几行数据开始
//10 每页显示多少条数据
//stu 起的表名
adapter.Fill(ds, 1, 10, "stu");
}
//将数据赋值给DataGridView控件(dgv1)的DataSource属性
//通过索引 ds.Tables[0] 将临时数据库中第一张表中数据赋值给DataSource
//dgv1.DataSource = ds.Tables[0];
//通过表名将临时数据库中表名stu 赋值给DataSource
dgv1.DataSource = ds.Tables["stu"];
}
通过DataAdapter的Fill()填充DataSet;使用Fill()方法也可以实现分页但不是高效分页,它是在服务器端先把数据都查询出来,然后通过DataReader跳过前面的不要数据,过滤出后面想要的数据
真正的数据分页应该是在数据库中就只查询出所需当前页的数据,这个是高效分页的方式,可通过数据库提供的ROW_NUMBER()函数进行高效的数据分页
DataAdapter的Fill()不止可以向DataSet装填数据还可以向DataTable类型中装填数据,这个类型也是以后常用的,SQLHelper类中的一个封装的静态方法,返回值就是DataTable类型
本文暂时没有评论,来添加一个吧(●'◡'●)