有些时候,一个方法需要返回几个DataTable,这时我们就要将这些DataTable加入到一个DataSet中。
这个问题看起来很简单,但是实际遇到的时候,常常会遇到一些小问题。
DataSet ds = new DataSet();
DataTable dtCity = GetData(sqlCity);
DataTable dtArea = GetData(sqlArea);
如何将dtCity和dtArea加入到ds中呢?
我想有些人会直接像下面这样写
ds.Tables.add(dtCity);
ds.Tables.add(dtArea);
但是测试后发现报错了,提示dtCity已经存在于另一个DataSet中。
这个时候估计有些人就会想到把上面的代码改为下列代码了
ds.Tables.add(dtCity.Copy());
ds.Tables.add(dtArea.Copy());
思路非常正确,但是再测试发现还是报错,dtArea加入到ds中的时候,提示DataSet已存在DataTable。
这就对了,我们还需要给DataTable命名
DataSet ds = new DataSet();
DataTable dtCity = GetData(sqlCity);
dtCity.TableName = "dtCity";
ds.Tables.Add(dtCity.Copy());
DataTable dtArea = GetData(sqlArea);
dtArea.TableName = "dtArea";
ds.Tables.Add(dtArea.Copy());
好了,再测试一次,OK!