首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

双击datagrid的一行,显示总跳到第一条记录,该怎么解决

2012-01-13 
双击datagrid的一行,显示总跳到第一条记录先用一个datagrid显示数据,再写另一个模块A,也使用同一个datagri

双击datagrid的一行,显示总跳到第一条记录
先用一个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 Subsub DataGird1_RowCloChange(...)  Text1.Text =rs(0),end sub 

热点排行