-2

我正在研究一个将执行存储过程的按钮。返回数据时,我只需要将记录号传递到稍后将用于后页的数组中。然后,aspx 的后台会将记录号输入到字符串中,并将用户重定向到 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;
    }
4

2 回答 2

0

好的,所以要调用不带参数的过程,只需删除这两行:

db.AddOutParameter(dbc, "Record_OUT", DbType.String, 15);
db.AddOutParameter(dbc, "locator_OUT", DbType.String, 9);
于 2013-04-15T19:19:06.697 回答
0

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

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

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

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

于 2013-04-16T17:09:31.887 回答