2012-10-04 27 views
0

我有代碼顯示關於度數在datagridview中的信息。這個程序的工作原理,但我發現我需要使用數組顯示這些信息。一旦我想出瞭如何將其顯示在數據表中,這非常簡單,但我需要以其他方式來完成。請給點建議!使用數組代替數據表在vb中編寫程序

Dim array As New DataTable 
Dim array2 As New DataTable 
Dim array3 As New DataTable 


Private Sub btnQuit_Click(sender As System.Object, e As System.EventArgs) Handles btnQuit.Click 

    Me.Close() 

End Sub 

Private Sub btnDegrees_Click(sender As System.Object, e As System.EventArgs) Handles btnDegrees.Click 

    array.Clear() 
    Dim column1 As DataColumn = New DataColumn("Field of Study") 
    column1.DataType = System.Type.GetType("System.String") 

    Dim column2 As DataColumn = New DataColumn("1981") 
    column2.DataType = System.Type.GetType("System.String") 

    Dim column3 As DataColumn = New DataColumn("2006") 
    column3.DataType = System.Type.GetType("System.String") 

    array.Clear() 
    array.Columns.Add(column1) 
    array.Columns.Add(column2) 
    array.Columns.Add(column3) 

    array.Rows.Add("Business", "200,521", "318,042") 
    array.Rows.Add("Computer and info. science", "15,121", "47,480") 
    array.Rows.Add("Education", "108,074", "107,238") 
    array.Rows.Add("Engineering", "63,642", "67,045") 
    array.Rows.Add("Social sciences and history", "100,513", "161,485") 

    Me.dgvStudies.DataSource = array 


End Sub 

Private Sub btnChanges_Click(sender As System.Object, e As System.EventArgs) Handles btnChanges.Click 

    array2.Clear() 
    Dim column4 As DataColumn = New DataColumn("Field of Study") 
    column4.DataType = System.Type.GetType("System.String") 

    Dim column5 As DataColumn = New DataColumn("Change (1981-2006)") 
    column5.DataType = System.Type.GetType("System.String") 


    array2.Columns.Add(column4) 
    array2.Columns.Add(column5) 

    ''Display array two containing percentage changes'' 
    array2.Rows.Add("Computer and info. science", "214.0%") 
    array2.Rows.Add("Social sciences and history", "60.7%") 
    array2.Rows.Add("Business", "58.6%") 
    array2.Rows.Add("Engineering", "5.3%") 
    array2.Rows.Add("Education", "-0.8%") 

    dgvStudies.DataSource = array2 

End Sub 

Private Sub btnHistogram_Click(sender As System.Object, e As System.EventArgs) Handles btnHistogram.Click 

    array3.Clear() 

    Dim column6 As DataColumn = New DataColumn("Field of Study") 
    column6.DataType = System.Type.GetType("System.String") 

    Dim column7 As DataColumn = New DataColumn("") 
    column7.DataType = System.Type.GetType("System.String") 

    Dim column8 As DataColumn = New DataColumn("Degrees in 2006") 
    column8.DataType = System.Type.GetType("System.String") 

    array3.Clear() 
    array3.Columns.Add(column6) 
    array3.Columns.Add(column7) 
    array3.Columns.Add(column8) 

    array3.Rows.Add("Computer and info. science", "*****", "47,480") 
    array3.Rows.Add("Engineering", "*******", "67,045") 
    array3.Rows.Add("Education", "***********", "107,238") 
    array3.Rows.Add("Social sciences and history", "****************", "161,485") 
    array3.Rows.Add("Business", "********************************", "67,045") 

    dgvStudies.DataSource = array3 

End Sub 
End Class 
+1

datatable是一種多維數組,是網格的常用後備存儲。我可以問爲什麼你想用這個(多維)數組? – StingyJack

+0

這是一個任務。所以你說數據表仍然是一個數組?所以我可以保留我已經做了什麼? – compucrazy

+0

@SadieStokes一個'DataTable'不是''Array'。 – Magnus

回答

1

如果你想使用一個數組,而不是DataTable你還需要創建對應於你的DataTable結構的對象。這是使用數組和Degrees對象的「度數實現」示例。

Sub Main 
    dim arr = new Degrees() { new Degrees("Business", "200,521", "318,042"), new Degrees("Computer and info. science", "15,121", "47,480")} 
    Me.dgvStudies.DataSource = arr 
End Sub 

public class Degrees 
    public property FieldofStudy As string 
    public property Year1986 As string 
    public property Year2006 As string 

    public sub new(byval fieldofStudy As string, byval year1986 As string, byval year2006 As string) 
     Me.FieldofStudy = fieldofStudy 
     Me.Year1986 = year1986 
     Me.Year2006 = year2006 
    end sub 
end class 
+0

當我點擊按鈕來顯示度數,雖然它不給我我期待的結果。我是否需要像我爲其他按鈕那樣做列和行信息? – compucrazy

+0

不,但也許你需要設置網格以使用新的列名稱(來自Degrees類)。而你的意思是「不給我我要找的結果」什麼是錯的? – Magnus

相關問題