stC#:如何调用存储过程并将参数用作数组

时间:2013-04-15 18:41:13

标签: c# sql stored-procedures parameter-passing

我正在处理一个执行存储过程的按钮。当返回数据时,我只需要将记录号传递到一个数组中,该数组稍后将用于后页。然后,aspx的backpage将记录号输入到字符串中,并将用户重定向到RecordInfo页面。这是我到目前为止,但我一直得到同样的错误:

{“此SqlParameterCollection不包含带有ParameterName'@RecNum_OUT'的SqlParameter。”}

我希望你能帮助我。

 <asp:Button ID="GetNextRec" runat="server" Text="Get Part" 
             onclick="GetNextRec_Click" OnCommand="btnNext_OnClick" />

ASPX.CS

protected void GetNextRec_Click(object sender, EventArgs e)
{
        String[] q = new String[1];
        q = Record.GetNextRec();
        Response.Redirect("~/PartsRecord.aspx?mode=full&queue=" + q[0], false);
}

数据库cs

  public static String[] GetNextRec()
    {
        Database db = DataFactory.CreateDatabase();
        DbCommand dbc = db.GetProc("GetNextRec");

        db.ExecuteNonQuery(dbc); // IDK if this si doing anything
        String[] q = new string[1];
        q[0] = dbc.Parameters["@RecNum_OUT"].Value.ToString(); // "An SqlParameter with ParameterName '@requisition_OUT' is not contained by this SqlParameterCollection."}
        return q;
    }

2 个答案:

答案 0 :(得分:0)

好的,所以调用没有参数的程序只需删除这两行:

db.AddOutParameter(dbc, "Record_OUT", DbType.String, 15);
db.AddOutParameter(dbc, "locator_OUT", DbType.String, 9);

答案 1 :(得分:0)

所以我终于想通了。 我能够根据存储过程中的参数设置填充我需要的页面。 我使用了以下代码:

db.AddOutParameter(dbCommand, "RecNum_OUT", DbType.String, 15);--

在命令下方获取所需的程序。 一旦我添加了该行,一切正常。

感谢那些试图提供帮助的人。