插入行后更新 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