如何将参数从下拉列表传递到存储过程

时间:2009-10-05 12:21:56

标签: asp.net

我无法将参数从下拉列表传递给存储过程。

存储过程:

CREATE PROCEDURE Select_Newnews
    @NewsId varchar(4) 

    As
    select * from CommentsTbl where NewsId=@NewsId 
    RETURN

代码背后:

 protected void Button1_Click(object sender, EventArgs e)
    {
        SqlParameter sp1 = new SqlParameter();
        c.com.Parameters.AddWithValue("@NewsId", NewsIdDropDownList.SelectedItem.Text);

        CommentGridView.DataSource = c.GetDataset("Select_Newnews");
        CommentGridView.DataBind();

          }

我收到过程或函数'Select_Newnews'期望参数'@NewsId'的错误,该参数未提供。

请帮帮我

1 个答案:

答案 0 :(得分:3)

如果您将null作为参数值发送,通常会发生这种情况。确保该值不是null,并且它应该按预期工作。例如,您可以尝试这样的事情:

object value = NewsIdDropDownList.SelectedItem.Text != null 
    ? NewsIdDropDownList.SelectedItem.Text 
    : DBNull.Value;
c.com.Parameters.AddWithValue("@NewsId", value);

如果NewsIdDropDownList.SelectedItem.Textnull值,则会将参数正确地发送到过程(通过null替换DBNull.Value