1.我使用ADO编程,将SQL语句返回的记录集作为DATAGRID的数据源,设置了datagrid的column caption参数,可显示的列名是结果集的列名,有没有办法解决? 现在用的权益之计是查询时直接加别名,如:Select Name as '姓名' From employee,总觉得应该还有更好的方法2.如何防止DATAGRID的数据被误更改?可否实现“撤销”操作,如果不行的话,能不能在数据发生更改时提示用户确认?

解决方案 »

  1.   

    第一个问题:
    更改列名要放在程序的最后,你要先把数据绑定好提取出来之后再使用:
    DataGrid1.Columns(Index).Caption = "你要的名字"第二个问题:
    你可以把原来值在修改之前(BeforeColEdit)进行保存,当然用户修改完成之后使用DataGrid的AfterColEdit事件,是在完成网格单元中的编辑之后出现的事件,此时跳出msgbox对话框,让用户选择是否修改(VbYesNo),之后怎么做应该会了吧
      

  2.   

    在datagrid上点右键,选择“属性”,在"列"选项卡上选择某一列,输入标题即可(依此类推)
      

  3.   

    1.我使用ADO编程,将SQL语句返回的记录集作为DATAGRID的数据源,设置了datagrid的column caption参数,可显示的列名是结果集的列名,有没有办法解决? 现在用的权益之计是查询时直接加别名,如:Select Name as '姓名' From employee,总觉得应该还有更好的方法//1:设置DataGrid标题:DataGrid1.Columns(0).Caption = "编号".2.如何防止DATAGRID的数据被误更改?可否实现“撤销”操作,如果不行的话,能不能在数据发生更改时提示用户确认?
    //
    DataGrid上编辑数据,实际也就是对Recordset进行改变了。对Recordset的操作其实已经不是绝对的控件应用问题,应该归属在数据库的方面。
    Recordset的Open语法如下:
        recordset.Open Source, ActiveConnection, CursorType, LockType, Options
        其实CursorTypeEume是指定用语Recordset对象资料的指针类型, LockTypeEnum指定编辑时设定在记录上的锁定类型.
        (具体常数值请查MSDN)。
        在这个问题上,我们完全可以借用将Recordset进行批次开启,在确定修改的时候进行批次更新,不确定修改的时候,数据自然会恢复原来的数值。 
      

  4.   

    在datagrid上点右键,选择“属性”,在"列"选项卡上选择某一列,输入标题即可,并绑定记录源(依此类推)
      

  5.   

    楼上几位:datagrid的属性如列等选项经过修改后,数据读不出了! 所以才用默认的,并采用SQL语句的重命名功能,
      

  6.   

    Dim conn As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        Dim strconn As String
        Dim ss As String
        Dim temp As String    Set conn = New ADODB.Connection
        Set rs = New ADODB.Recordset
        strconn = "Driver={sql server};server=127.0.0.1;uid=sa;pwd=sa;database=TestDB"    ss = "Select * From TableName"
        conn.Open strconn
        conn.Execute ss
        rs.Open ss, conn, adOpenKeyset, adLockOptimistic
        Set DataGrid1.DataSource = rs
        DataGrid1.Refresh数据库连接正常,可如果我修改了DATAGRID的列的CAPTION栏时,数据就无法显示了!!