双击datagrid的一行,显示总跳到第一条记录,该怎么解决
双击datagrid的一行,显示总跳到第一条记录
先用一个datagrid显示数据,再写另一个模块A,也使用同一个datagrid显示数据。在模块A中,想实现双击datagrid一次,即选择一行记录的功能。但问题是,使用模块A时,每双击datagrid中的一条记录,显示总是跳到datagrid数据表的第一条记录上,为何?如何解决?模块A的代码如下(Text1是用于显示双击所选的记录):
------解决方案--------------------
双击datagrid时,选中行的事件,这样应该可以选中一行数据!
------解决方案--------------------
你每次双击,都进行记录集加载,当然,每次都定位到第一条记录上了
按照你的代码看,你可以在Form_Load中加载记录集
先用一个datagrid显示数据,再写另一个模块A,也使用同一个datagrid显示数据。在模块A中,想实现双击datagrid一次,即选择一行记录的功能。但问题是,使用模块A时,每双击datagrid中的一条记录,显示总是跳到datagrid数据表的第一条记录上,为何?如何解决?模块A的代码如下(Text1是用于显示双击所选的记录):
- VB code
Private Sub DataGrid1_DblClick() Dim cn As New adodb.Connection Dim rs As New adodb.Recordset cn.CursorLocation = adUseClient cn.ConnectionString = "Driver={SQL Server};server=" & ComputerName & ";uid=sa;pwd=1234;database=disc" cn.Open rs.Open ("select * from disc_name "), cn, adOpenDynamic, adLockOptimistic Set DataGrid1.DataSource = rs Text1.Text = DataGrid1.Columns(0).CellText(DataGrid1.Bookmark) 'DataGrid1.Refresh ' 这句话要不要? End Sub
------解决方案--------------------
双击datagrid时,选中行的事件,这样应该可以选中一行数据!
------解决方案--------------------
你每次双击,都进行记录集加载,当然,每次都定位到第一条记录上了
按照你的代码看,你可以在Form_Load中加载记录集
- VB code
Private Sub Form_Load() Dim cn As New adodb.Connection Dim rs As New adodb.Recordset cn.CursorLocation = adUseClient cn.ConnectionString = "Driver={SQL Server};server=" & ComputerName & ";uid=sa;pwd=1234;database=disc" cn.Open rs.Open ("select * from disc_name "), cn, adOpenDynamic, adLockOptimistic Set DataGrid1.DataSource = rs ’Text1.Text = DataGrid1.Columns(0).CellText(DataGrid1.Bookmark),移动到RowColCange事件中 'DataGrid1.Refresh ' 这句话要不要?------没什么必要 End Sub sub DataGird1_RowCloChange(...) Text1.Text =rs(0), end sub