我在程序中调用一个存储过程,想将存储过程中的SELECT记录集结果返回到程序中的DATAGRID,如何做呀。
请高手指教

解决方案 »

  1.   

    set rs=**.excute 存储过程
    set DATAGRID.**=rs
    就行了吧
      

  2.   

    一个是select_users存储过程,一个是insert_users存储过程
    经过了测试Option Explicit
    Private mConn As ConnectionPrivate Sub Command1_Click()
        Dim rs As ADODB.Recordset
        Dim cmd As ADODB.Command
        Dim param As ADODB.Parameter
        
        Set cmd = New ADODB.Command
        cmd.ActiveConnection = mConn
        cmd.CommandText = "insert_users"
        cmd.CommandType = adCmdStoredProc
        
        Set param = cmd.CreateParameter("truename", adChar, adParamInput, 20, Trim(txttruename.Text))
        cmd.Parameters.Append param
        
        Set param = cmd.CreateParameter("regname", adChar, adParamInput, 20, Trim(txtregname.Text))
        cmd.Parameters.Append param
        
        Set param = cmd.CreateParameter("pwd", adChar, adParamInput, 20, Trim(txtpwd.Text))
        cmd.Parameters.Append param
        
        Set param = cmd.CreateParameter("sex", adChar, adParamInput, 20, Trim(txtsex.Text))
        cmd.Parameters.Append param
        
        Set param = cmd.CreateParameter("email", adChar, adParamInput, 20, Trim(txtemail.Text))
        cmd.Parameters.Append param
        
        Set rs = cmd.Execute
        
        Command2_Click
        
    End SubPrivate Sub Command2_Click()
        Dim rs As ADODB.Recordset
        Dim cmd As ADODB.Command
        Dim param As ADODB.Parameter
        
        Set rs = New ADODB.Recordset
        Set cmd = New ADODB.Command
        cmd.ActiveConnection = mConn
        cmd.CommandText = "select_users"
        cmd.CommandType = adCmdStoredProc
        
        mConn.CursorLocation = adUseClient '设置为客户端    Set rs = cmd.Execute()    MsgBox rs.RecordCount
        Set DataGrid1.DataSource = rs
        DataGrid1.RefreshEnd SubPrivate Sub Form_Load()
        'open the connection
        Set mConn = New Connection
        
        mConn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=TestUser;Data Source=yang"
        mConn.Open
        Dim rs As New ADODB.Recordset
        'Set rs = New ADODB.Recordset
        rs.Open "users", mConn, adOpenStatic, adLockPessimistic
        
        MsgBox rs.RecordCountEnd SubPrivate Sub Form_Unload(Cancel As Integer)    mConn.Close
        Set mConn = Nothing
    End Sub
      

  3.   

    楼上的大虾,我想问一下,你在
    rs.Open "users", mConn, adOpenStatic, adLockPessimistic
    这里面的"user"是指什么?
    另外,为什么我在
    mycommand.CommandType = adCmdStoredProc
    mycommand.CommandText = "areaAll"
    Set myrst = New ADODB.Recordset
    Set myrst = mycommand.Execute()
    Debug.Print "exeok!!!!"
    Debug.Print myrst.State
    MsgBox myrst.RecordCount
    Set DataGrid1.DataSource = myrst
        DataGrid1.Refresh运行时提示错误,显示:行集合不能作为标签。同时在MSGBOX处显示-1,哪里的问题呢?帮忙啊,谢谢。
      

  4.   

    rs.Open "users", mConn, adOpenStatic, adLockPessimistic
    这里面的"user"是指什么?
    是表运行时提示错误,显示:行集合不能作为标签。同时在MSGBOX处显示-1,哪里的问题呢?帮忙啊,谢谢。
    请设置客户端游标
    cmd.CommandType = adCmdStoredProc
        
        mConn.CursorLocation = adUseClient '设置为客户端