我在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
答案 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
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中的所需数据创建一个构造函数作为参数...