2013-03-07 77 views
0

首先,我已經搜索了interwebs以找到解決方案,但沒有一件看起來完全正確。使用「自動生成」字段將數據行添加到數據表中

我有一個DataGrid顯示來自我的數據庫的信息。我試圖添加記錄到數據網格和數據庫。下面的代碼是我到目前爲止的'添加'按鈕。

Dim TaxConnStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ConfigurationManager.AppSettings("Database") 
    Dim dbConnection As OleDbConnection = New OleDbConnection(TaxConnStr) 
    Dim dt As New DataTable 
    Dim ds As New DataSet 

    Try 

     dt.Rows.Add(New String() { 
              boxAssignTo.Text, _ 
              boxState.Text, _ 
              boxCounty.Text, _ 
              boxAmount.Text, _ 
              boxType.Text, _ 
              boxRank.Text}) 


    Catch ex As Exception 
    Finally 
     dbConnection.Close() 
    End Try 

現在我有錯誤「輸入數組長度超過此表中的列數」。在此過程中展示。我猜測這是因爲在數據庫的表中我有一個自動生成的ID字段,我沒有添加。但是我已經對如何添加這毫無章法。

不知道這事,但是當我顯示的DataGrid我有

DataGridView1.Columns.Remove("ID") 

,所以我不看物理ID字段(有點毫無意義在這個winForm中)。

溫柔,我很新的數據庫和VB

回答

1

您收到此錯誤的原因是因爲你還沒有添加任何列:

Try 
     dt.Columns.Add("a") 
     dt.Columns.Add("b") 
     dt.Columns.Add("c") 
     dt.Columns.Add("d") 
     dt.Columns.Add("e") 
     dt.Columns.Add("f") 

     dt.Rows.Add(New String() {"1","2","3","4","5","6"}) 


    Catch ex As Exception 
    Finally 

    End Try 
+0

現在,這是有道理的。我認爲這不會自動更新我的dataGrid,所以我應該把我的函數,以獲得「最後」後的datagrid信息。對? – MaylorTaylor 2013-03-07 19:50:25

+0

當您有一個沒有預定義列的數據網格時(即,在窗體視圖中),您可以使用它。如果網格已經創建並且您只是爲其添加值,則需要以另一種方式進行。這是ASP.net還是Windows窗體? – jason 2013-03-07 19:53:15

+0

Windows窗體。 datagrid正在讀取數據庫表中的列信息。我只是想更新數據網格和數據庫表。 – MaylorTaylor 2013-03-07 20:12:38

相關問題