名为“ds”的 DataTable 已属于此 DataSet。

DataTable dt = DbHelperSQL.Query(strs).Tables[0];     --表一
DataTable dts = DbHelperSQL.Query(str).Tables[0];     --表二
DataSet ds = new DataSet(); 
ds.Tables.Add(dt.Copy());      --添加第一个的时候 没有报错
ds.Tables.Add(dts.Copy());    --添加第二个的时候就报错了 

其实在看一个 dt 这个datatable 变量的时候  

会发现  你只是声明了一个datatable的一个变量  这个变量名叫dt

然后dt是一张table  他的tableName 可以看一下  为 ds (系统默认命名) 

也就是这张表名 

平时都以为dt 就是表名  其实不是

在每次声明datatable变量的时候  默认表名ds 

所以 改一下  tableName 就行了    附上截图 dt 和dts的截图

DataTable dt = DbHelperSQL.Query(strs).Tables[0];
dt.TableName = "table";
DataTable dts = DbHelperSQL.Query(str).Tables[0];
dts.TableName = "table1";
DataSet ds = new DataSet();
ds.Tables.Add(dt.Copy());
ds.Tables.Add(dts.Copy());

原文地址:https://www.cnblogs.com/sajiao/p/7145896.html