在新表单上更新datagridview中的数据

时间:2014-01-07 12:16:59

标签: vb.net datagridview

我在Visual Studio 2010中使用VB

我有三个表单(MainForm,SaveForm和updateform),其中saveForm和updateform具有相同的表单设计,在Mainform中有1个datagridview,两个按钮(btnSave显示saveForm和btnUpdate显示updateform)
是可以的更新datagridview中选定行的数据,条件是该行的所有数据都显示在updateform?

我有这个编码

这是更新形式

Dim idsend As String
Conn = New OleDb.OleDbConnection(Konek())
        Conn.Open()
        Comm = New OleDb.OleDbCommand
        Comm.Connection = Conn
        Comm.CommandText = "SELECT * FROM TabelSiswa WHERE No =" & idsend
        Reader = Comm.ExecuteReader()
        Reader.Read()
        txtName.Text = reader.getvalue(1)


这是在Mainform上

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
FormUpdate.idSend = dgv.CurrentRow.Cells(0).Value

2 个答案:

答案 0 :(得分:0)

您的updateform中的idsend应为Public

尝试

Public Class updateform 
    Public Property idsend As String

    ...
End Class

然后在打开表单之前传递id值

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim f2 As New FormUpdate
    f2.idsend = dgv.CurrentRow.Cells(0).Value

    f2.ShowDialog()
End Sub

答案 1 :(得分:0)

@Vland解决方案将起作用,
但我认为更好的做法是将变量idsend保留为私有,因为它只在类外使用一次(传递给类实例)

Private _idsend As Int32

然后将它的值传递给构造函数

Public Sub New(inIdSend As Int32)
    _idsend = inIdSend
End Sub

现在,您可以在FormUpdate

中使用您的ID
Private Sub Button1_Click(ByVal sender As System.Object, 
                          ByVal e As System.EventArgs) Handles Button1.Click
    Dim id as Int32 = dgv.CurrentRow.Cells(0).Value
    Dim update As New FormUpdate(id)
    update.ShowDialog()
End Sub

或者,如果您不想再次创建与数据库的连接 - 使用datagridview中的所需数据创建一个构造函数作为参数...