0
我在VB.Net中有一個全局變量的問題。VB.net全局變量不能正常工作?
在一個子按鈕(由按鈕觸發)中,我創建對象並將它們存儲到全局變量(數組)中。之後,我創建了一個表格(DataGrid)。
第二個按鈕的另一個子項被觸發並嘗試使用全局變量中的數組,但它似乎是空的。
下面是代碼:
<script runat="server">
Dim array_datensatz(12) As Datensatz
Sub submit1_click(ByVal Sender As Object, ByVal E As EventArgs)
Dim cellX As New TableCell()
For n = 0 To 12 '13 objects a created
Dim tmpklasse As New Datensatz(n)
array_datensatz(n) = tmpklasse
' MsgBox(tmpklasse.methode_merkmal1) ' method_merkmal1 returns a Integer
' MsgBox(array_datensatz(n).methode_merkmal1()) 'both work
Next n
ItemsGrid.DataSource = CreateDataSource() 'creates table
ItemsGrid.DataBind()
End Sub
Function CreateDataSource() As ICollection
Dim dt As New DataTable()
Dim dr As DataRow
dt.Columns.Add(New DataColumn("Merkmal1"))
dt.Columns.Add(New DataColumn("Merkmal2"))
dt.Columns.Add(New DataColumn("Merkmal3"))
Dim i As Integer
For i = 0 To (array_datensatz.GetLength(0) - 1) 'länge des array der ergebnise (0. dim) = #results
dr = dt.NewRow()
dr(0) = array_datensatz(i).methode_merkmal1()
dr(1) = array_datensatz(i).methode_merkmal2()
dr(2) = array_datensatz(i).methode_merkmal3()
dt.Rows.Add(dr)
Next i
Dim dv As New DataView(dt)
Return dv
End Function 'CreateDataSource
Public Sub sub_anonym(ByVal Sender As Object, ByVal E As EventArgs)
For i = 0 To (array_datensatz.GetLength(0) - 1)
MsgBox(array_datensatz(i).methode_merkmal1()) 'throws an exception saying that ~"the object reference doesn't target an object-instance"
Next i
End Sub
</script>
問題是什麼? 爲什麼沒有陣列中的物體?
以及我選擇vb.net,因爲它可以處理數據庫和Excel表。用戶用一個按鈕觸發第一個Sub,用第二個按鈕觸發第二個Sub(我遇到「錯誤」) - 我以爲全局Var在