通过单一列的dataTable在vb.net



我有一个5行2列(Id,Name)的数据表。我需要将数据表的5行只有一列(Id)传递给一个函数参数,这是一个数据表。

这是我尝试过的

myfunction(dt.Rows.Item("Id")
Public function myfunction (dt as dataTable)
// Some code
End Function

但这不起作用。为什么会这样呢?即使一个列被排除,数据表仍然是一个数据表。我怎样才能通过"id"呢?列,但不包括"名称"。

您提供的内容有几个问题。

首先,你的函数调用在末尾缺少一个括号。

myfunction(dt.Rows.Item("Id"))

第二,你的函数期待一个数据表,但你正在传递一个单元格(也没有指定哪一行,所以这不会工作)…

如果你真的希望你的函数使用一个数据表,你只需要像这样传递dt:

myFunction(dt)

如果你想传递单元格值,你可以改变你的函数定义,接受一个字符串或任何数据类型的列,并传递值:

myFunction(dt.Rows(ROWNUMBER).Item("Id"))

函数需要一个DataTypeReturn语句

你的函数正在等待一个DataTable,而你正在传递一个DataRow

dt.Rows.ItemInteger,不取String

你不Dim一个Function,你叫它

Stack Overflow要求您的问题的最小,完整和可重复的示例。你的代码不是那样的

我给了你的函数一个名字和一些琐碎的事情,这样我就可以演示正确的语法。如果你不需要整个DataTable,那么就不要把它传递给函数。我只是路过的ID列中的值列表(T)如果你的功能是你无法控制的,想要一个数据表,然后通过dt。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim lst = dt.Rows.OfType(Of DataRow)().Select(Function(dr) dr.Field(Of Integer)("ID")).ToList()
Dim MaxID = GetMaxID(lst)
End Sub
Public Function GetMaxID(lst As List(Of Integer)) As Integer
Dim MaxI = lst.Max
Return MaxI
End Function

相关内容

  • 没有找到相关文章

最新更新