2012-07-08 64 views
0

我有一个程序有两种形式,两种形式都有自己的网格。 Grid1在form1上,Grid2在form2上。我希望Grid2充当用于编辑的弹出窗口。当用户在Grid1上双击一行时,它应该在该行上重新查询并在Grid2上显示该单行。我无法弄清楚如何获取所选行的列名,然后对其进行独特的识别。我至今: (这是在Form1的方式)获取SQL中选定行的列名?

Public Sub dgvForm1_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvForm1.CellDoubleClick 

Dim i As Integer = 0 
Dim rowIndex As Integer 
Dim cellName as string 



While dgvForm1.SelectedRows.Item(0).Cells(i).ColumnIndex < dgvForm1.ColumnCount 

     rowIndex = dgvForm1.SelectedRows.Item(0).HeaderCell.RowIndex 
     cellName = dgvForm1.SelectedRows.Item(0).HeaderCell.toString 
     Select Case cellName 
      Case "control_no" 
       Dim sControlNum = cellName.ToString 
      Case "store_id" 
       Dim sStoreNum = cellName.ToString 
     End Select 

     i = i + 1 
End While 
end sub 

我只是简单地希望用户双击被显示在许多其他记录一个DataGridView一行,并触发双击事件。然后这将遍历selectedrow的列名直到找到control_id和store_id并获取它们的值。附:我试了一个小时左右的谷歌,但我很难得到任何技术工作。

更新: 我应该添加,这是一个绑定的数据网格,它使用sqlClient及其dataadapter/dataset方法。

+0

如果有人知道有类似的帖子,通过一切手段让这个帖子关闭,并指向我现有的一个!我看,但找不到一个我知道如何实现他们的解决方案,我的代码。 – Garrettchap1 2012-07-08 20:19:23

+0

你应该使用的是带有“datatable”的东西。你看,DataSet是Dotnet1中的一个类,它包含许多方法和属性。如果你决定从它继承来进一步优化它,你会得到更多的东西,比如事件IIRC。但请小心 - 您正在使用TableAdapter,这是一种很少使用的旧技术。 (为了让事情更难掌握,DataSet也被恕我直言,因为人们误解了DataSet,Typed DataSet和TableAdapter之间的区别。恕我直言:TableAdapers:bad,DataSet:无类型,因此不好,Typed DataSet:好。) – LosManos 2012-07-08 21:04:06

回答