我是vb初学者,最好有代码!!谢了!

解决方案 »

  1.   

    VB调用存储过程,把存储过程显示到DATAGRID是干吗,啥意思?
    PLSQL?不懂就要顶楼主说清楚
      

  2.   

    在存儲過程最後一句寫入Select語句,在前台綁定存儲過程不就可以了!
      

  3.   

    如果要顯示數據,直接用SQL語句不行嗎?
      

  4.   

    用 command 对象执行带参数的储存过程 就会返回recorst对象
      

  5.   

    经过测试
    添加和显示的都有
    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
        
        Dim s As Single
        s = Val(Format(Text1.Text, "Fixed"))
        Set param = cmd.CreateParameter("sl", adSingle, adParamInput, 50, s)
        cmd.Parameters.Append param
        Set rs = cmd.Execute
        
    '    Cmd_Tjjl.Parameters("@zwrq") = Format(Zwrq.Value, "yyyy-mm-dd")
     '   Cmd_Tjjl.Parameters("@zh") = Zh.Text
       ' .....
      '  Cmd_Tjjl.Parameters("@bz2") = Bz2.Text
        'Cmd_Tjjl.Parameters("@czy")='11'    
        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 Sub
    Private Sub Form_Load()
        'open the connection
        Set mConn = New Connection
        
        mConn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Test;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
    存储过程
    CREATE PROCEDURE insert_users @truename char(20), @regname char(20),@pwd char(20),@sex char(20),@email char(20),@sl decimal(19,2)
    AS
    insert into users(truename,regname,pwd,sex,email,sl) values(@truename,@regname,@pwd,@sex,@email,@sl)
    GOCREATE PROCEDURE select_users 
    AS
    select * from users
    GO
      

  6.   

    呵呵,online的例子我一直以为写得太复杂了。
    呵呵
      

  7.   

    我是这么用的,很方便,用存储过程速度快多了Public gcon As New Connection
    strcon = "Provider=SQLOLEDB.1;Password=....
    gcon.ConnectionString = strcon
    gcon.Open
    Private Sub Form_Load()
        Call getAllComp(lvC)
    End Sub
    Public Sub getAllComp(lv As ListView)
        Dim rs As Recordset
        Dim i As Integer
        Dim Item As ListItem
        i = 1
        lv.ListItems.Clear
        Dim txtsql As String
        txtsql = "exec pr_getallcompanies"
        Set rs = gcon.Execute(txtsql)
        'if gcompany.GetAllCompanies(rs) Then
            Do While Not rs.EOF
                Set Item = lv.ListItems.Add(, , i)
                Item.ListSubItems.Add , , rs!companyid
                Item.ListSubItems.Add , , rs!companycode
                Item.ListSubItems.Add , , rs!CompanyName
                rs.MoveNext
                i = i + 1
            Loop
    End Sub'pr_getallcompanies--存储过程
      

  8.   

    楼上的那例子不错,其实直接用excute执行就可以的,存储过程就是就这么简单的
    online的是从另外角度写的存储过程,哈哈