2011-04-19 68 views
0

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

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

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

任何帮助,将不胜感激!

这就是我现在所拥有的:

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

我不相信你可以做你想做的事。将其拆分为两个单独的存储过程:http://stackoverflow.com/questions/58940/access-to-result-sets-from-within-stored-procedures-transact-sql-sql-server – Smudge202 2011-04-19 14:02:13

+0

这就是我的感受。我会保持我的希望,即有人对此有一个解决方案/想法,但我将开始计划与管理数据库/程序的人员一起进行第二种选择。谢谢你的评论! – Vincent 2011-04-19 14:29:49

回答

0

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

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) 
+0

这就是我所拥有的,它在ds = <你的数据源>行上给了我一个转换错误。我将添加我的问题中的代码 – Vincent 2011-04-19 13:50:56

0

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 
1

获得通过后门:

  1. 获取由 Select语句
  2. 返回的数据视图获取与此 数据视图
  3. 相关联的表获取与 表

代码示例相关的数据集:

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) 

我希望它适合你。

相关问题