存储过程返回多个表,填充到Dataset中后,现在Dataset中有多个表我在Dataset中取表的时候,是不是只能按照索引来取?
例如ds.Tables[0],ds.Tables[1],,,,,
问题是,如果存储过程中我又多返回了一个表,并且位置都变化了
那我这边再按照索引来取是不是就乱了有没有什么办法,在我填充DataSet的时候,直接按定义的表名来取?
目前Dataset中存的表名都是默认的Table0 ,Table1等等,,没用
例如ds.Tables[0],ds.Tables[1],,,,,
问题是,如果存储过程中我又多返回了一个表,并且位置都变化了
那我这边再按照索引来取是不是就乱了有没有什么办法,在我填充DataSet的时候,直接按定义的表名来取?
目前Dataset中存的表名都是默认的Table0 ,Table1等等,,没用
存储过程中返回可能有三个表
而我应用程序这边不知道存储过程中的顺序的变化
仍然使用Ds.Table[0],而此时Ds.Table[0]已经是D表 而不是A表了,,,,
Ds.Tables["A"]
感谢兄弟你认真的看完我的陈述,唉,,,我就是想按照表名来取表,但是这样的话存储过程里是不是得处理一下
例如表A 是这样得到的
select * from XX1
Inner join XX2,,,
Left Outer Join XX3,,,
Where XXXXXXXXXXX and XXXXXX这样的话肯定不会自动添加Dataset的时候绑定表名A是不是得这样处理?
select * from (
select * from XX1
Inner join XX2,,,
Left Outer Join XX3,,,
Where XXXXXXXXXXX and XXXXXX
) AS A这样是不是太麻烦了?
DataTableMapping mapping = adapter.TableMappings.Add("Table0", "abc");
adapter.Fill(dataset);
有几个表你就添加几个mapping就行了。