如何将新行添加到数据表 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的主要内容,如果未能解决你的问题,请参考以下文章