我今天第一次接触到数据集,书上介绍是说它相当于一个临时仓库。可问题是,我现在多的事情我自己都觉得好2。
题目需求是根据一个班级的ID查找出所有学生的基本信息:
以下是我写的代码!
string sql = string.Format("select * from dbo.Student where GradeId = {0}",this.cmbGrade.SelectedValue);
            DataSet dds = DBhelper.getDataSet(sql);
            this.dgvGrade.DataSource = dds;可是根据这种情况来看,数据集根本就和废物一样。我每次都根据需求查找出数据来,放到DataSet,让再把它放到控件上面。可是这样根本没体现出临时仓库的作用。而且每次都还是在打开数据库和关闭数据库。临时仓库现在变成了过度,每次用完之后就没有用处了。
我现在想的是一次读取出学员的数据,然后根据要求从DataSet里面查找出数据,但是我现在不知道怎么操作这个数据集呢。请个位帮我解答下。
或者帮我理清楚这几个东西的作用,和具体的用法。理顺我的思路!~

解决方案 »

  1.   

    可以用 DataSet 的 Tables 方法获取表,然后用 DataTable.Select() 过滤数据。不过 C# 3.0 提供的LINQ提供了更好的查询功能。
      

  2.   

    临时仓库的说法不太准确,dataset的作用应该是把数据库的数据暂时存储在内存,控件的DataSource只能访问内存里的数据,因为效率原因和不同数据库的访问方法不一样,比如sql server和access就需要不同的类库去访问,所以控件不可能直接访问数据库,为了让控件能显示不同数据库的数据,只能把这个过程分为两步,第一步,访问数据库把数据放入标准的dataset中,不同数据库虽然有不同的读取方法和sql语句,但都能放进dataset中,第二部,用控件显示dataset内容,就是this.dgvGrade.DataSource = dds;这样才能实现控件显示不同数据库的数据,