下面举一些都是有关DataGrid控件问题,希望各位高手帮忙解答,谢谢~
我已经把DataGrid 用ADO连接到了一个SQL server数据库上。。请问,如何在DataGrid中删除当前行?
如何在当前行再插入一行?
如何在没有选择“更新”的时候,对DataGrid中各项(也就是数据库中的各项)的修改不生效?请各位路过的帮忙回答。。
再次谢过

解决方案 »

  1.   

    1如何在DataGrid中删除当前行?
    在DataGrid中有 允许删除属性 AllowDelete,设定为true后
    运行时,选中DataGrid中的整行,用Delete可以直接删除!不过安全起见,最好在BeforeDelete增加提醒
    Private Sub DataGrid1_BeforeDelete(Cancel As Integer)
        If MsgBox("是否删除选中的记录?", vbYesNo + vbInformation, "提示") = vbNo Then
            Cancel = True
        End If
    End Sub
      

  2.   

    上面小错误修改:DataGrid1_BeforeDelete(Cancel As boolean)  非Integer
    注意:使用键盘上的Delete删除不会影响记录集。
      

  3.   

    谢谢,不过 我想用一个"删除"按钮 来删除..
    不知道代码该如何写?(还有两个问题...如何在当前行再插入一行?
    如何在没有选择“更新”的时候,对DataGrid中各项(也就是数据库中的各项)的修改不生效?
      

  4.   

    搂主的意思是这样吗?:
    用ado连接,得到一个记录集,然后把记录集和datagrid绑定,当要delete,update,add时,通过对记录集即sql语句实现,然后datagrid1.refresh就行了。
      

  5.   

    Option ExplicitPublic Rs As New ADODB.Recordset
    Public Conn As New ADODB.Connection'删除
    Private Sub cmdDel_Click()
      On Error Resume Next
      Rs.Delete
      
    End Sub'确定更新数据
    Private Sub cmdUpdate_Click()
      On Error Resume Next
      Rs.UpdateBatch
    End Sub'增加
    Private Sub Command1_Click()
     On Error Resume Next
     Rs.AddNew
    End Sub'连接datagrid
    Private Sub Form_Load()
       Dim strConn As String
       strConn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pubs;Data Source=LocalHost"
       Conn.CursorLocation = adUseClient
       Conn.Open strConn
       
       If Rs.State <> adStateClosed Then Rs.Close
       Rs.Open "Select * from jobs", Conn, adOpenStatic, adLockBatchOptimistic  '用批次打开
       Set Me.DataGrid1.DataSource = Rs
    End Sub'关闭
    Private Sub Form_Unload(Cancel As Integer)
      Rs.Close
      Set Rs = Nothing
      Conn.Close
      Set Conn = Nothing
    End Sub