如何为数据集表分配表名

时间:2014-02-18 06:56:00

标签: c# mysql asp.net

我在MySQL中创建了三个存储过程。它工作正常。现在我用C#阅读第三个程序。它返回名为table,table1的两个表。如何指定每个表的名称?在使用超过8或10时,我真的很困惑表名。

create procedure dbo.GetPeople
as
begin
    select * from dbo.Person;
end;

create procedure dbo.GetCars
as
begin
    select * from dbo.Car;
end;

-- This gives the same result as before
create procedure dbo.GetSomething
as
begin
    exec dbo.GetPeople;
    exec dbo.GetCars;
end;

2 个答案:

答案 0 :(得分:0)

在c#中,您将通过索引从dataSet获取表,因为当我们从dataBase填充dataSet时,我们永远不会从db接收表名。

当我通过sp返回多个表时,我用于报告的一件事是可行的:

在每个表示表名的select语句中选择一个额外的列。

e.g 你的sp

create procedure dbo.GetData
as
begin

select '' as 'Person', * from dbo.Person;
select '' as 'Car',* from dbo.Car;

end;

在dataSet上执行foreach循环,将每个表的firstColumn名称作为DbTableName。
以下是dumy代码请验证,我没有编译。

foreach(DataTable tbl in dataSet.Tables)
 {
       if(tbl.columns[0].name=="Person")
       {
        //your code to do with table Person
       }esle if(tbl.columns[0].name=="Car")
        //your code to do with table Car
       }
 }

答案 1 :(得分:0)

DataSet _ds=new DataSet();

DataTable _dtEmployee=new DataTable();

_dtEmployee=_ds.Tables["employee"];

_dtEmployee=ds.Tables[0];