对DataSet和DataTable的个人理解,如下:
在数据库驱动的应用程序中,DataSet类是ADO.NET中最常用的类。提供了数据源断开连接是管理数据的机制。从DataSet类中创建的对象用作其他从DataTable类中创建的对象的容器。DataTable对象表示内存中的一个逻辑表,它包含行、列、主键、约束和其他DataTable对象的关系。所以DataSet可以由多个不同的表组成。
那么究竟什么时候使用DataSet,什么时候使用DataTable呢?
当要访问的数据来源于多个表,要处理多个DataTable对象,那么就需要一个容器对象DataSet来管理它们。如果只处理一个表的信息,最好使用DataTable对象的一个实例,而不是只包含一个DataTable的DataSet对象。这样会很耗资源。使用DataSet最大的一个优点就是可以处理多个数据库,而不是处理一个数据集合。
代码片段:(1)DataSet
SqlConnection con = new SqlConnection( "server=localhost;uid=sa;pwd=sa;database=pubs");
conn.open();
SqlDataAdapter da =new SqlDataAdapter("select stuName,stuInfo.stuNo,writtenExam,labExam from stuInfo inner join stuMarks on stuInfo.stuNo=stuMarks.stuNo where writtenExam<@writtenpass or labExam < @labpass",conn);
DataSet set=new DataSet();
da.fill(set, "Customers");
(2)DataTable
SqlConnection con = new SqlConnection( "server=localhost;uid=sa;pwd=sa;database=pubs");
conn.open();
SqlCommand comad=new SqlCommand ();
comad.CommandType = CommandType.Text;
comad.Connection = conn;
comad.CommandText = "select * from Customers";
SqlDataReader reader = comad.ExecuteReader();
table = new DataTable();
table.Load(reader);
学习总结