DataTable a=new DataTable();
DataTable b=new DataTable();
DataTable b=new DataTable();
DataSet ds=new DataSet();
改 thisAdapter.Fill(a);
thisAdapter.Fill(b);
thisAdapter.Fill(c);
ds.Tables.Add(a);
ds.Tables.Add(b);
ds.Tables.Add(c);
DataTable b=new DataTable();
DataTable b=new DataTable();
DataSet ds=new DataSet();
改 thisAdapter.Fill(a);
thisAdapter.Fill(b);
thisAdapter.Fill(c);
ds.Tables.Add(a);
ds.Tables.Add(b);
ds.Tables.Add(c);
如果我在DSTest设计时,不从存储过程拖到设计面板里(即数据集没和存储过程绑定),那么结果是3个表table,table1,table2。如果绑定了,但是没给这三个标命名(就是在设计时,给tablename赋值),那么是4个表。如下:
sp_aa
0
table
1
table1
7
table2
1
您的
thisAdapter.Fill(a);
该怎么做呢?从存储过程返回的是三个表啊。也就是说,用thisAdapter把哪个表fill到a中呢?怎么去控制呢?谢谢
DataAdapter.TableMappings.Add("Table","a");
DataAdapter.TableMappings.Add("Table1","b");
DataAdapter.TableMappings.Add("Table2","c");
然后调用Fill(DataSet)来填充DataSet即可,另外一种则是使用Fill(DataSet,srcTable)的办法,这样的话第一个表名将会是srcTable,第二个则变成srcTable1,srcTable2...srcTableN,类推,所以必须使用
DataAdapter.TableMappings.Add("srcTable1","b");
DataAdapter.TableMappings.Add("srcTable2","c");
来修改这种映射.