【问题标题】:How to pass the asp.net dropdown selected item as an input to a stored procedure in c#?如何将 asp.net 下拉选定项作为输入传递给 c# 中的存储过程?
【发布时间】:2012-08-22 18:26:43
【问题描述】:

这是我正在使用的代码..我想将下拉选择的项目作为输入传递给存储过程并执行..我怎么能做到这一点?

public class DaysForEvents
{
    public DataSet GetDaysForEvents(//This should be my input to stored procedure (i.e)  dropdownselected value)
    {
        SqlConnection con = new SqlConnection(CommonSettings.GetEventsConnectionString());

        try
        {
            SqlCommand sqlcmd = new SqlCommand("proc_fetch_event_days", con);
            SqlDataAdapter sqlda = new SqlDataAdapter(sqlcmd);
            DataSet ds = new DataSet();
           //DateFilter = 0;
            //StatusFilter = 0;

            sqlcmd.CommandType = CommandType.StoredProcedure;

            sqlcmd.Parameters.AddWithValue("@event_id", Event_id);
            // sqlcmd.Parameters["@UserID"].Value = UserID;


            con.Open();
            sqlda.Fill(ds);
            con.Close();

            return ds;


        }

【问题讨论】:

  • 您的代码在这里没有太大意义。你的下拉项目在哪里? UserID 是在哪里定义的?

标签: c# stored-procedures drop-down-menu selecteditem


【解决方案1】:

据我了解,你想要这个。

//get dropdown selected value and store in a variable 
var eventId = dropdown.SelectedValue; 

//pass this variable in the GetDaysForEvents method to get DataSet.
var dataSet = GetDaysForEvents(eventId); 

【讨论】:

    【解决方案2】:
    sqlcmd.Parameters.AddWithValue("@event_id", yourDropDown.SelectedValue);
    

    【讨论】:

      【解决方案3】:

      像这样调用你的函数

      string eventId = ddlEvents.SelectedValue;
      GetDaysForEvents(eventId);
      

      【讨论】:

        【解决方案4】:

        -User using 声明关闭您的连接并处理您未使用的资源。

        -DataAdapter自己打开连接,所以不需要Open()

        public DataSet GetDaysForEvents(string eventId)
        {
            var ds = new DataSet();
            using(var connection = new SqlConnection("ConnectionString"))
            {
                using(var cmd = new SqlCommand("storedProcedureName", connection){ CommandType = CommandType.StoredProcedure })
                {
                    cmd.Parameters.AddWithValue("@EventId", eventId);
                    using(var adapter = new SqlDataAdapter(cmd))
                    {
                        adapter.Fill(ds);
                    }
                }
            }
            return ds;
        }
        

        还有别的地方

        var events = yourClassInstance.GetDaysForEvents(dropDown.SelectedValue);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-02-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-15
          • 1970-01-01
          • 2020-02-21
          相关资源
          最近更新 更多