Vb.net 如何以绑定形式显示默认值?

Vb.net 如何以绑定形式显示默认值?,vb.net,Vb.net,我有一个绑定到datatable的VB.Net表单 让我们假设以下数据表: Dim DataTable As New DataTable DataTable.Columns.Add(New DataColumn("ID")) DataTable.Columns.Add(New DataColumn("NAME")) DataTable.Columns("ID").AllowDBNull = False DataTable.Columns("NAME").A

我有一个绑定到datatable的VB.Net表单

让我们假设以下数据表:

    Dim DataTable As New DataTable
    DataTable.Columns.Add(New DataColumn("ID"))
    DataTable.Columns.Add(New DataColumn("NAME"))
    DataTable.Columns("ID").AllowDBNull = False
    DataTable.Columns("NAME").AllowDBNull = False
表单有两个绑定到datatable的文本框:

    Me.TextBox1.DataBindings.Add("text", DataTable, "ID")
    Me.TextBox2.DataBindings.Add("text", DataTable, "NAME")
现在,我想用ID中的默认值向datatable添加一个新行

第一种方法 这种方法行不通。它引发错误:列“ID”不允许为空。

第二种方法 第二种方法的问题是,受影响的默认值没有出现在ID文本框中,这很正常,因为此行尚未添加到Datatable中。如果“NAME”列尚未填充,我也无法将其添加到数据表中

这是否意味着我永远无法在表单中显示默认值


是否有人知道如何在窗体上显示AllowDBNull属性的默认值?

尝试设置DataColumn的DefaultValue属性:

DataTable.Columns("ID").DefaultValue = 0
DataTable.Columns("NAME").DefaultValue = "Test"

谢谢你的回答。如果列名没有默认值且应由用户填写,该怎么办?@ThomasCarlton您文章中令人困惑的部分是,您正在将TextBox2属性绑定到一个数据表,该数据表将只绑定到第一行,因为您没有使用货币管理器,例如BindingSource,等等。您可以始终将DefaultValue设置为String.Empty,然后在需要有效输入的TextBox2控件上使用验证。
    Dim NewRow As DataRow
    NewRow = DataTable.NewRow

    'Add ID default value
    NewRow.Item("ID") = 1
    .
    .
    .
    'Once the user filled the field Name
    NewRow.Item("NAME") = TextBox2.text
    DataTable.Rows.add(NewRow)
DataTable.Columns("ID").DefaultValue = 0
DataTable.Columns("NAME").DefaultValue = "Test"