【问题标题】:Naming output tables from sql从 sql 命名输出表
【发布时间】:2013-06-01 05:53:27
【问题描述】:

我知道在 .net 数据集中,您可以为表命名。在您取回数据之前,是否可以从 Sql 中执行此操作。

我的问题是,我有一个存储过程,它根据输入参数返回 2 或 4 个表,所以我有一个 If 语句

' Verify that the expected results of two tables were return from the Stored Procedure
If (dsPosting.Tables.Count = 4 AndAlso intBankType <> 10) _
OrElse (dsPosting.Tables.Count = 2 AndAlso intBankType = 10) Then

现在存储过程已更改为 2 或 5,并且顺序不同。有没有更好的方法来识别我想要“这两个表”,而不是在代码中硬编码值并不得不发布新版本。

理想情况下,我想要ds.Table("TheOneIWant") 之类的东西或类似的东西?

【问题讨论】:

  • 你是如何填写DataSet的?
  • afaik,你不能从存储过程中做到这一点。 stackoverflow.com/questions/589976/… 的可能重复项
  • @Ted Microsoft 应用程序块 dsPosting = SqlHelper.ExecuteDataset
  • 您不能将DataSet 存储在SessionViewState 变量中并将其用于ListViewGridView 吗?

标签: sql vb.net


【解决方案1】:

TDS 中连续的单独结果没有名称;它们只是结果的顺序网格。所以不,没有办法做到这一点。您的代码需要知道(或能够推断)它所期望的结果。一种选择可能是查看每个返回时的架构。

另一种看待这个的方式是看这条线:

现在存储过程变成了2或5,顺序不同了。

这是一个突破性的变化;避免重大更改是一个真正好主意。

【讨论】:

  • “这是一个重大变化” 同意,但 DB 和 .net 部门并不总是在同一页面上。我正在考虑让它始终排在最后两张桌子。
猜你喜欢
  • 1970-01-01
  • 2020-02-06
  • 1970-01-01
  • 2015-06-10
  • 2016-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-25
相关资源
最近更新 更多