访问数据视图中的第二个表

Posted

技术标签:

【中文标题】访问数据视图中的第二个表【英文标题】:Accessing 2nd table in dataview 【发布时间】:2011-04-19 13:34:25 【问题描述】:

我有一个运行存储过程的 sqlDataSource,该存储过程返回作为参数传入的月份中的天数表,其排列方式与日历中的排列方式相同。它还返回第二个表,其中包含与该月的某些日期相关的事件详细信息。

基本上,我将如何访问查询返回的第二个表中包含的值?

我尝试将 .select 的结果放入数据集中,但不幸的是我收到了转换错误。如果我尝试将它放在数据视图中,我只会得到第一个表。

任何帮助将不胜感激!

这就是我现在拥有的:

  Dim ds As New Data.DataSet
  Dim eventTable As New Data.DataTable
  ds = sqlCalendrier.Select(DataSourceSelectArguments.Empty)
  eventTable = ds.Tables(1)

【问题讨论】:

我不相信你能做你想做的事。将其拆分为两个单独的存储过程:***.com/questions/58940/… 这也是我的感受。我会寄希望于有人对此有解决方案/想法,但我将开始与管理数据库/程序的人一起计划第二个选项。感谢您的评论! 【参考方案1】:

通过后门进入:

    获取返回的数据视图 选择语句 获取与此关联的表 数据视图 获取与 表

代码示例:

Dim dv As DataView = CType(sqlCalendrier.Select(DataSourceSelectArguments.Empty), DataView)
Dim ds As New DataSet() = dv.Table.DataSet
Dim dtDates As DataTable = ds.Tables(0)
Dim dtEvents As DataTable = ds.Tables(1)

我希望它对你有用。

【讨论】:

【参考方案2】:

通过使用数据集实例的表格集合

    Dim ds As New DataSet()
    ds = <your data source>
    Dim dtDates As New DataTable()
    Dim dtEvents As New DataTable()

    dtDates = ds.Tables(0)
    dtEvents = ds.Tables(1)

【讨论】:

这就是我所拥有的,它在 ds = 行上给了我一个转换错误。我将添加我的问题中的代码【参考方案3】:

取自this post:

 With cmd
   .CommandText = "ProdsAndCusts"
   .CommandType = CommandType.StoredProcedure

 End With


 cn.Open()

 myReader = cmd.ExecuteReader()

 While myReader.Read()
   ...

 End While


 myReader.NextResult()

 While myReader.Read()
   ...

 End While

【讨论】:

以上是关于访问数据视图中的第二个表的主要内容,如果未能解决你的问题,请参考以下文章

第二个视图中的 AppDelegate 声明

将第二个表中的第二个(条件)结果添加到 SQL 查询

iOS 8 导航栏在 Storyboard 上的第二个 ViewController 中无法访问

如何在 EF / EF Core 中的第二个表上实现具有某些条件的左连接?

如何访问列表中的第二个参数?

通过第一个表的元素访问第二个表的属性