我正在尝试运行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查询来填充Dataset1
。 function2
运行不同的sql查询,但需要使用Dataset1
中的值来在WHERE子句中使用。
我得到的错误是第二行,它显示System.IndexOutOfRangeException: There is no row at position 0
。
我也尝试了var1.Container.Components.Item("Manufacturer").ToString()
之类的东西。结果只是一个不同的错误。
我没有在这里包含sql查询,因为我知道它正在运行。我将第一个函数中的数据绑定到页面上的数据网格,然后使用DataBinder
将数据从Dataset1获取到页面上,并且工作正常(我可以使用Databinder得到制造商的价值,所以我知道该列/单元格/值都存在于数据集中)。我不确定我现在做错了什么。
答案 0 :(得分:0)
There is no row at position 0
表示var1.tables(0)
没有任何行。您的数据集是否包含多个表格?如果是这样,也许就像var1.tables(1).rows(0).Item("Manufacturer")
?如果不是 - 这意味着您的function1(value)
返回带有空表的数据集。