程序或函数'期望参数'@pro_ID',该参数未提供
本文关键字:参数 ID 期望 程序 @pro 函数 | 更新日期: 2023-09-27 18:17:11
我正在使用期望@pro_ID
参数值的存储过程:
ALTER PROCEDURE [dbo].[SpMyIndex]
@pro_ID int
AS
SELECT CAST(MAX(SUBSTRING(thumbpic_path, 18, 1)) AS INT)+1 AS HAHA
FROM [dbo].[TblPro_Gallery] WHERE pro_ID = @pro_ID
在我的代码中,我有一个下拉列表(drpProduct
),必须将@pro_ID
传递到SqlDataSource
:
<asp:SqlDataSource ID="sdsMyIndex" runat="server"
ConnectionString="<%$ ConnectionStrings:DigiStudio_CString %>"
SelectCommand = "[SpMyIndex]" SelectCommandType= "StoredProcedure">
<SelectParameters>
<asp:ControlParameter ControlID="drpProduct" Name="pro_ID"
PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
这是我的c#代码:
private void MakeIndex()
{
SqlConnection con = new SqlConnection(cn);
SqlCommand cmd = new SqlCommand();
cmd = con.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "[SpMyIndex]";
con.Open();
SqlDataReader dbDR = cmd.ExecuteReader();
while (dbDR.Read())
{
Session["MyIndex"] = dbDR["HAHA"].ToString();
}
con.Close();
}
为什么不能访问@pro_ID
的存储过程值
由于您正在使用asp:SqlDataSource,您不需要编写您在MakeIndex方法中编写的代码。如果您正在使用MakeIndex方法的路由,那么您必须添加@pro_ID作为命令参数。我认为你把这些方法混在一起了。