SqlParameter1.Direction=ParameterDirection.Output;

解决方案 »

  1.   

    那输出的参数是不是在调用存储过程前把输出参数也add进去,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    不用,尽管对应生成参数即可取值即可
      

  2.   

    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.SqlClient" %><html>
     
    <script language="VB" runat="server">    Sub GetEmployees_Click(Sender As Object, E As EventArgs)         Dim DS As DataSet
            Dim MyConnection As SqlConnection
            Dim MyCommand As SqlDataAdapter        MyConnection = New SqlConnection("server=(local)\NetSDK;database=northwind;Trusted_Connection=yes")
            MyCommand = New SqlDataAdapter("SalesByCategory", MyConnection)        MyCommand.SelectCommand.CommandType = CommandType.StoredProcedure        MyCommand.SelectCommand.Parameters.Add(New SqlParameter("@CategoryName", SqlDbType.NVarChar, 15))
            MyCommand.SelectCommand.Parameters("@CategoryName").Value = SelectCategory.Value        MyCommand.SelectCommand.Parameters.Add(New SqlParameter("@OrdYear", SqlDbType.NVarChar, 4))
            MyCommand.SelectCommand.Parameters("@OrdYear").Value = SelectYear.Value        DS = new DataSet()
            MyCommand.Fill(DS, "销售额")        MyDataGrid.DataSource=DS.Tables("销售额").DefaultView
            MyDataGrid.DataBind()
        End Sub</script><body style="font: 10.5pt 宋体">  <form runat="server">  <h3><font face="宋体">对 DataGrid 控件的参数化存储过程选择</font></h3>  选择类别:  <select id="SelectCategory" runat="server">
        <option>Beverages</option>
        <option>Condiments</option>
        <option>Confections</option>
        <option>Dairy Products</option>
        <option>Grains/Cereals</option>
        <option>Meat/Poultry</option>
        <option>Produce</option>
        <option>Seafood</option>
      </select>  &nbsp;  选择年份:  <select id="SelectYear" runat="server">
        <option>1996</option>
        <option>1997</option>  
        <option>1998</option>  
      </select>  &nbsp;  <input type="submit" OnServerClick="GetEmployees_Click" Value="获取销售额" runat="server"/><p>  <ASP:DataGrid id="MyDataGrid" runat="server"
        Width="650"
        BackColor="#ccccff" 
        BorderColor="black"
        ShowFooter="false" 
        CellPadding=3 
        CellSpacing="0"
        Font-Name="宋体"
        Font-Size="8pt"
        HeaderStyle-BackColor="#aaaadd"
        EnableViewState="false"
      />  </form></body>
    </html>
      

  3.   

    to acewang:
    取的方法用sqlReader去读还是用sqlCommand的Parameters去读?
      

  4.   

    to acewang:
    你的存储过程是返回一个数据集的吧?我想返回过程的结果
      

  5.   

    to  jupiterII我用你的方法,但运行有错误,提示:
    OCI-22060: 参数 [2] 是一个无效或未初始化的数值 
    代码:
    oraCmd.CommandText="Dt_CheckRoleType";
    oraCmd.CommandType=CommandType.StoredProcedure;
    oraCmd.Parameters.Clear();
    oraCmd.Parameters.Add("iRoleType",OracleType.Number,10);
    oraCmd.Parameters.Add("StrRoleDescript",OracleType.NVarChar,20);
    oraCmd.Parameters.Add("iRole",OracleType.Number,2);
    oraCmd.Parameters.Add("iOrgType",OracleType.Number,10);
    oraCmd.Parameters.Add("iResult",OracleType.Number,10);

    oraCmd.Parameters["iRoleType"].Value=iRoleId.ToString();
    oraCmd.Parameters["StrRoleDescript"].Value=txt_RoleDescript.Text.Trim();
    oraCmd.Parameters["iRole"].Value=txt_Role.Text.Trim();
    oraCmd.Parameters["iOrgType"].Value=ddl_OrgType.SelectedItem.Value.Trim();
    oraCmd.Parameters["iResult"].Direction=ParameterDirection.Output;