我有一個 5 行 2 列的資料表(Id,Name)。我需要將只有一列(Id)的資料表的 5 行傳遞給作為資料表的函式引數。
這是我試過的
myfunction(dt.Rows.Item("Id")
Public function myfunction (dt as dataTable)
// Some code
End Function
但這是行不通的。為什么會這樣?即使排除了列,dataTable 仍然保留為 dataTable。如何在不包含“名稱”列的情況下將“ID”列作為引數傳遞給該函式。
uj5u.com熱心網友回復:
您提供的內容存在幾個問題。
首先,您的函式呼叫末尾缺少括號。
myfunction(dt.Rows.Item("Id"))
其次,您的函式需要一個資料表,但是您正在傳遞一個單元格(并且也沒有指定哪一行,所以這不起作用)...
如果你真的想讓你的函式使用資料表,你只需要像這樣傳遞 dt :
myFunction(dt)
如果您想傳遞單元格值,您可以更改函式定義以采用字串或該列中的任何資料型別,并傳遞如下值:
myFunction(dt.Rows(ROWNUMBER).Item("Id"))
uj5u.com熱心網友回復:
函式需要一個DataType和一個Return陳述句。
您的函式正在等待 aDataTable而您正在傳遞 a DataRow。
dt.Rows.Item需要一個Integer,而不是一個String。
你不是Dim一個Function,你怎么稱呼它。
Stack Overflow 要求為您的問題提供一個最小、完整和可重現的示例。你的代碼不是那樣的。
我給了你的函式一個名字和一些微不足道的東西,這樣我就可以演示正確的語法。如果您不需要整個 DataTable,則不要將其傳遞給函式。我只是將 ID 列中的值作為 List(Of T) 傳遞如果您的函式不受您的控制并且它想要一個 DataTable,那么只需傳遞 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/314903.html
上一篇:帶通配符的IndexOf
下一篇:ReDim后初始化陣列
