插入行后更新 DGV

Posted

技术标签:

【中文标题】插入行后更新 DGV【英文标题】:Update DGV after inserting a row 【发布时间】:2013-06-18 09:47:38 【问题描述】:

当使用以下代码选择一行时,我通过按一个按钮在数据库末尾插入一个选定的行:

Dim conn_veko As New SqlConnection("Data Source=Gxxx\SQLEXPRESS;Initial Catalog=xxx;  Integrated Security=TRUE")
Dim insert_cmd As SqlCommand = New SqlCommand("dbo.Insert", conn)
Dim i As Integer = DGV.CurrentRow.Index
conn.Open()
With BenutzerTabelle_SelectDataGridView.Rows(i)
insert_cmd.Parameters.AddWithValue("@V1", .Cells(0).Value)
insert_cmd.Parameters.AddWithValue("@V2", .Cells(1).Value)
End With
insert_cmd.ExecuteNonQuery()
conn.Close()

记录已插入数据库,但我必须重新启动程序才能在我的 dgv 中查看记录。 人们建议(在我的谷歌搜索中)尝试 dgv.refresh() 和 DataSet1.AcceptChanges() 但它没有帮助。我的 SQL-Server 上有以下 SP,可能会有所帮助,但我不知道如何使用它。

CREATE Procedure Tabupdate
@v1 date
@v2 int
as
Begion
Set NoCount on
UPDATE Table
SET
v1 = @v1,
v2 = @v2
where @v3 = 3
END

谁能帮我解决这个问题?

【问题讨论】:

插入后尝试再次对网格进行数据绑定。 我在这里遗漏了一些东西。您从网格中获取插入命令的值,但是,您说,您看不到这些值。那么你能解释一下你看不到的价值观是什么吗? @Steve:我选择一行,单击一个按钮,应该会在网格底部的新行中看到我选择的数据。但我没有看到那里的数据。 @kostas ch.:我对这个真的很陌生。我通过拖放创建了所有内容。添加新元素,拖动数据适配器。使用向导等等。在这样的背景下,您的建议是否仍然可行,我只是想在开始研究之前知道,这是不可能的。 @v3 的参数在哪里? 【参考方案1】:

您需要再次填充您的网格,但是您现在正在执行此操作。只需在插入后执行此操作,这将获取新数据。

【讨论】:

谢谢,它正在工作! Me.TableAdapter.Fill(Me.DataSet1.Table) 欢迎您,我只是没有您用来填充它的任何代码,否则我会把它记下来。

以上是关于插入行后更新 DGV的主要内容,如果未能解决你的问题,请参考以下文章

更新/插入/删除表中的行后触发的触发器有问题

初学编程:入行后端编程,选择什么编程语言最合适?

行插入/删除后无法调整 TableView contentOffset

单击行后插入动态创建组件

在 UITableView 中插入一些行后,它在 ios 7 中没有滚动

插入几行后,Sql server Insert 变慢