0

我正在尝试运行 SQL 查询以从表中提取一行。然后我需要从该表的列中获取单元格的值并将其传递给另一个 SQL 查询。第二部分是失败的地方,我不知道为什么。

我的代码:

Dim var1 As Dataset1 = function1(value)
Me.DataGrid1.DataSource = var1
Me.DataGrid1.DataBind()
Dim var2 As Dataset2 = function2(var1.tables(0).rows(0).Item("Manufacturer").ToString())

function1基本上只是执行一些事情,包括要填充的 sql 查询Dataset1function2运行不同的 sql 查询,但需要Dataset1在 WHERE 子句中使用值 from。

我得到的错误是第二行,它说System.IndexOutOfRangeException: There is no row at position 0.

我也尝试过类似的东西var1.Container.Components.Item("Manufacturer").ToString()。结果只是一个不同的错误。

我没有在此处包含 sql 查询,因为我知道这是有效的。我将数据从第一个函数绑定到页面上的数据网格,然后使用 a 将数据从 Dataset1 获取到页面上,DataBinder并且工作正常(我可以使用 Databinder 获得制造商值就好了,所以我知道那一列/cell/value 都存在于数据集中)。我不确定我在这一点上做错了什么。

4

1 回答 1

0

There is no row at position 0表示var1.tables(0)没有任何行。您的数据集是否包含多个表?如果是这样,也许它是这样的var1.tables(1).rows(0).Item("Manufacturer")?如果不是 - 这意味着您function1(value)返回的数据集带有一个空表。

于 2013-05-17T19:15:34.160 回答