【发布时间】:2014-11-12 21:28:35
【问题描述】:
我有一个存储过程,它创建两个表的数据集。我在 c# 中调用这个存储过程,如下所示:
DataTable mytable1 = myDataSet.tables[0];
DataTable mytable2 = myDataSet.tables[1];
我希望能够将“表名”传递给 dataset.tables 函数,因为我想存储过程有一天会将其他表返回到数据集中。
这里已经提出了非常相似的问题,例如: Give name to table after select 我还找到了其他帮助网站,例如:http://odetocode.com/articles/365.aspx
但我找到的所有答案最终都会创建额外的表或表变量。我不想创建任何新表或变量,我只想为我的查询输出创建一个别名。
我尝试在 SQL 存储过程中为我的表提供别名,但没有成功。 c#中出现的名字分别是“Table”和“Table1”。
关于存储过程的所有其他功能都正常运行,我只是希望它为输出表返回不同的名称。 我已经尝试了SQL代码:(为简单起见,括号中的条件)
SELECT * FROM myTable1 AS myTable1 WHERE (conditions)
ORDER BY (field) ASC
SELECT * FROM myTable2 INNER JOIN myTable1 ON (join on id field) WHERE (conditions)
ORDER BY (field) ASC
当前的 SQL 代码仍会导致 c# tableName 字段包含“Table”和“Table1”。
如果不创建额外的表或表变量,是否完全不可能重命名这些查询输出?
【问题讨论】:
-
您需要使用强类型数据集(请参阅:support.microsoft.com/kb/320714)才能按名称引用 Tables 集合中的项目。
标签: c# sql sql-server stored-procedures