【发布时间】:2019-12-13 09:56:43
【问题描述】:
我正在创建一个学生数据库,为了添加一个学生,我包含了一个单独的表单。单独的窗体调用主窗体中的子 AddStudent()。在 AddStudent() 子中,当我向表中添加一行时,我得到一个 ArgumentException,因为显然该表没有任何列。我在全局范围内创建了表,表的列是在由 Form1.Load 处理的 sub 中创建的。
Public Class Form1
Private HiddenPages As New List(Of TabPage)
Dim StudentDB As New DataTable
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
CreateTable()
StudentDGV.DataSource = StudentDB
End Sub
Sub AddStudent(ByRef first As String, ByRef last As String, ByRef grade As String)
StudentDB.Rows.Add(last, first, CInt(grade))
StudentDGV.Refresh()
End Sub
Sub CreateTable()
With StudentDB
.Columns.Add("LastName", Type.GetType("System.String"))
.Columns.Add("FirstName", Type.GetType("System.String"))
.Columns.Add("GradeLevel", Type.GetType("System.Int16"))
End With
End Sub
如果有必要,StudentDGV 就是 DataGridView。
你能帮我解决我的问题吗?
【问题讨论】:
-
StudentBS.DataSource = StudentDGVBindingSource 正在使用网格?告诉我们哪一行抛出异常总是有帮助的。您应该只需要设置一次 Source,而不是每次添加一行。 -
我简化了@LarsTech,但我仍然得到一个 ArgumentException。
-
发布的代码不会产生异常。您在谈论单独的表格。它们是如何相互引用的?
标签: vb.net datatable datasource