C# 基于表名从数据集中访问sql语句
具有多个select语句的SQL server存储过程C# 基于表名从数据集中访问sql语句,c#,.net,sql-server,vb.net,sql-server-2008,C#,.net,Sql Server,Vb.net,Sql Server 2008,具有多个select语句的SQL server存储过程 Create procedure mySP as begin select column1,column2,column3 from table1; select column4,column5,column6 from table2; select column7,column8,column9 from table3; end DataSet ds=GetDataFromSQLProcedure(); ds.Tables[
Create procedure mySP
as
begin
select column1,column2,column3 from table1;
select column4,column5,column6 from table2;
select column7,column8,column9 from table3;
end
DataSet ds=GetDataFromSQLProcedure();
ds.Tables[0] - datatable will hold the data from table1.
ds.Tables[1] - datatable will hold the data from table2.
ds.Tables[2] - datatable will hold the data from table3.
如何基于名称而不是数字获取/分配/检索数据表,以便即使存储过程中select语句的顺序发生更改,也不需要更改我的C代码
即
无法知道SP返回的第一个记录集来自表1。如果返回的第一个记录集恰好是表1与表2的连接,该怎么办?那么表名是什么呢?您不能让sql更改表名,请注意,这些名称只是一般性地分配的。ds.Tables[0].TableName您可以从dotnet检查列名,也许这将为您提供所需的内容。@paul.abbott.wa.us-我正在寻找一个使用名称的选项在我的示例中,碰巧是表1,但是,当您加入更多表时,有没有办法根据名称而不是数字检索数据?您可以插入一个以表命名的假第一列,然后在检查数据时,检查第一列,然后使用该列正确拆分数据?
ds.Tables["table1"] instead of ds.Tables[0]?