如何将新行添加到数据表 vb.net

Posted

技术标签:

【中文标题】如何将新行添加到数据表 vb.net【英文标题】:how to add new rows into a datatable vb.net 【发布时间】:2012-03-07 00:54:48 【问题描述】:

我有一个带有文本框和“添加”按钮的表单。

    用户可以在文本框中写下一个名称,然后单击“添加”按钮。它将保存在具有自动 ID 的数据表中。 之后,文本框被清除,用户可以在文本框中输入另一个名称并单击按钮。 这应该添加到内存中现有 ID + 1 的现有数据表中。 然后在网格视图中显示。 (这只是为了显示目的,以确认它有效)

我有一个这样的数据表。

    Button1.click() event

    Dim name = txtname.Text
    Dim dt As New DataTable
    dt.Columns.Add("ID", GetType(Integer))
    dt.Columns.Add("Name", GetType(String))
    Dim N As Integer = dt.Columns("ID").AutoIncrement
    dt.Rows.Add(N, name)
    GridView1.DataSource = dt
    GridView1.DataBind()
    txtname.Text = ""

目前我有一段时间喜欢上面的代码。在实际程序中,它不仅仅是名称,也不仅仅是一个数据表,所以我只是模拟了一些代码。

还有这个aspx代码。

        <asp:TextBox ID="txtname" runat="server">
        </asp:TextBox><asp:Button ID="Button1" runat="server" Text="Button" />
        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>

谁能建议我怎么做?我知道我的代码是废话而且不正确,但我只需要输入一些代码,这样你们就不需要为我从头开始工作。

非常感谢。

【问题讨论】:

我不敢相信我问了这个问题:( 【参考方案1】:

以下是向数据表添加新行的示例,该数据表在第一列上使用 AutoIncrement:

定义表结构:

    Dim dt As New DataTable
    dt.Columns.Add("ID")
    dt.Columns.Add("Name")
    dt.Columns(0).AutoIncrement = True

添加新行:

    Dim R As DataRow = dt.NewRow
    R("Name") = txtName.Text
    dt.Rows.Add(R)
    DataGridView1.DataSource = dt

【讨论】:

它添加了名称,但它替换了第 (0) 行的前一个名称 不要在按钮单击事件中定义您的数据表,如果它有先前的数据,您需要在更广泛的范围内保留它。这样您就可以添加它,而无需调用 New 并删除所有先前的数据。如果您在类级别使用 Private dt 作为数据表,当您在按钮单击 dt 中添加一行时,在加载时(但不是在回发时)定义结构,它不会首先清除所有现有信息。 谢谢亲爱的 D ...它现在可以工作了.. 是的,问题是我当然加入了按钮点击事件,每次我多么愚蠢时它都会清除并创建新的 dt :D。 ..感谢您的回答,这将为我开发真正的程序提供一个非常好的开始..美好的一天! 天啊..我确实问过这个问题..现在看起来很傻。【参考方案2】:

首先你需要定义如下的数据表结构:

Dim dt As New DataTable
dt.Columns.Add("ID", Type.GetType("System.String"))
dt.Columns.Add("Name",Type.GetType("System.String"))

然后添加如下行:

Dim dr As DataRow = dt.NewRow
dr("ID") = System.GUID.NewGUID()
dr("Name") = txtName.Text
dt.Rows.Add(dr)
DataGridView1.DataSource = dt
DataGridView1.DataBind()

【讨论】:

以上是关于如何将新行添加到数据表 vb.net的主要内容,如果未能解决你的问题,请参考以下文章

VB.net 中的 DataGridView 不允许我更新

Datagridview vb.net中的组合框

将数据网格视图行添加到 vb.net 中的 sql 表

vb.net Datagridview添加行

vb.net datagridview 无法添加行

VB.NET 从 DataTable 对象将表附加到数据库