一直不清楚DataTable与DataSet的区别,也很少用到这些概念。因为平时写东西用到数据绑定基本上都是字定义到List中,然后逐个绑定到UI上。直到前段时间看同事写的代码,发现在数据库与UI数据绑定赋值过程中,用到这些感觉挺不错的,而且简单方便,所以就想弄清楚他们之间的区别以及如何使用。
DataSet:
dataset是数据集,数据集里包含datatable,还有数据表之间的关系等,一个数据集可以不包含表,一个或多个datatable表。简而言之,
DataSet:数据集。一般包含多个DataTable,用的时候,dataset["表名"]得到DataTable
DataTable:
datatable是数据表,它有列columns,行rows等。DataView是视图,DataView用来创建DataTable中所存储数据的不同视图,通常用于数据绑定
DataView DV = ds.Tables["表名"].DefaultView;
DataGrid1.DataSource=DV;
DataTable数据表使用:
1. 直接赋值给DataTable SqlDataAdapter da=new SqlDataAdapter(cmd); DataTable dt=new DataTable(); da.Fill(dt); 2. 直接把数据结果放到DataSet中 SqlDataAdapter da=new SqlDataAdapter(cmd); DataSet dt=new DataSet(); da.Fill(dt);
数据结果放到dataset中,若要用那个datatable,可以这样:dataset[0]
更常见的用法( 在赋值过程中对DataSet中Table命名):
SqlDataAdapter da=new SqlDataAdapter(cmd);
DataSet dt=new DataSet();
da.Fill(dt,"table1");
用的时候:这样取datatable: dataset["table1"]