急求一个解决方案!!!!急啊!!!
现在要设计一个类似表的结构,有行有列
但其中的每一个元素是一个数组!!
就好像类似3维的结构
我用Array来处理数组(表中的元素)
但整个表的结构却不会处理了
试过使用ArrayList,但好像只能是一维的结构,不能有二维的表现
请教高手,如何解决?使用vb.net中的什么类?
问题点数:100、回复次数:8Top
1 楼zhengoodman(伤心小箭--甩一个人需要理由吗?)回复于 2006-03-10 16:38:19 得分 0
用datatable不行吗?Top
2 楼jiezhi(风满袖)回复于 2006-03-10 16:42:34 得分 10
你使用多维数组不就行了吗?Top
3 楼liujingkun2323(黑猫)回复于 2006-03-10 16:51:18 得分 0
datatable的元素中好像不支持object类型吧?
我是说在定义列的时候,data.Columns.Add(columnName as String,type as System.type)
时,type没法写Array吧?
请jiezhi(风满袖)兄,说得详细点好吗?具体用什么类?Top
4 楼Gerryjiang(下一站)回复于 2006-03-10 17:02:13 得分 25
可以用dataTable,
实现如下:
1.make table,定义为:stageColumn.DataType = System.Type.GetType("System.Object")
Public Function MakeTable() As DataTable
' Create a new DataTable titled 'Names.'
Dim namesTable As DataTable = New DataTable("Names")
' Add three column objects to the table.
Dim stageColumn As DataColumn = New DataColumn
stageColumn.DataType = System.Type.GetType("System.Object")
stageColumn.ColumnName = "stage"
'stageColumn.AutoIncrement = True
namesTable.Columns.Add(stageColumn)
Dim errorDescColumn As DataColumn = New DataColumn
errorDescColumn.DataType = System.Type.GetType("System.String")
errorDescColumn.ColumnName = "ErrorDesc"
namesTable.Columns.Add(errorDescColumn)
Dim errorCodeColumn As DataColumn = New DataColumn
errorCodeColumn.DataType = System.Type.GetType("System.String")
errorCodeColumn.ColumnName = "ErrorCode"
namesTable.Columns.Add(errorCodeColumn)
' Create an array for DataColumn objects.
Dim keys(0) As DataColumn
keys(0) = stageColumn
MakeTable = namesTable
End Function
2:将一个一维数组存进去
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
Dim dt As New DataTable
Dim i As Integer
Dim j As Integer
Dim dr As DataRow
Dim curRow As Integer
Dim curCell As Integer
Dim row As HtmlTableRow
Dim t As Integer
Dim cell As HtmlTableCell
Dim ar(2) As String
ar(0) = 1
ar(1) = 2
dt = MakeTable()
For i = 0 To 1
dr = dt.NewRow
dr("stage") = ar
dr("ErrorDesc") = "123"
dr("ErrorCode") = "945"
dt.Rows.Add(dr)
Next
End If
End Sub
Top
5 楼sz_lgp(longguoping)回复于 2006-03-10 17:56:16 得分 10
多维数组可以的,同意风先生的说法。Top
6 楼zhouxiaotan(夜雨悠扬)回复于 2006-03-10 18:07:37 得分 10
ArrayList里面放一个ArrayListTop
7 楼dilong_hcj(夏雨)回复于 2006-03-10 18:10:56 得分 35
Private Sub Click1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Table(10, 10) As Object '二维表
Dim Col As Integer
Dim Row As Integer
For Row = 0 To 10
For Col = 0 To 10
'给每个个单元格负值(数组)
setCellData(Table(Row, Col))
Next
Next
Dim cell As Integer
Console.WriteLine(vbNewLine)
For Row = 0 To 10
For Col = 0 To 10
For cell = 0 To 10
Console.Write(Table(Row, Col)(cell))
Next
Console.WriteLine(vbNewLine)
Next
Console.WriteLine(vbNewLine)
Next
End Sub
'给每个个单元格负值(数组)
Private Sub setCellData(ByRef Cell As Object)
ReDim Cell(10)
Dim i As Integer
For i = 0 To 10
Cell(i) = i
Next
End SubTop
8 楼WZCNet(只有想不到,没有做不到)回复于 2006-03-10 18:30:29 得分 10
用ArrayListTop




