C# c通过下拉列表显示的会话值

C# c通过下拉列表显示的会话值,c#,.net,session,C#,.net,Session,我试图通过下拉列表显示会话值。这是我编写的代码,但它的工作不好。纠正我 //session created public void SAN() { cn.Open(); string sq = "select Sitealiasname from tbl_Sitemaster where sitename in (select sitename from tbl_emploeedetails where employee

我试图通过下拉列表显示会话值。这是我编写的代码,但它的工作不好。纠正我

    //session created

public void SAN()
        {
            cn.Open();
            string sq = "select  Sitealiasname from tbl_Sitemaster where sitename in (select sitename from tbl_emploeedetails where employeestatus='L' and employeeid='" + Session["EMPID"].ToString() + "') and    status='A' order by Sitealiasname asc";
            SqlCommand d = new SqlCommand(sq, cn);
            SqlDataReader r;
            r = d.ExecuteReader();
            while (r.Read())
            {
                Label4.Text = r["Sitealiasname"].ToString().Trim();
                Session["Sitealiasname"] = Label4.Text;
            }

            cn.Close();

        }


    //call the session to dropdownlist
     protected void Page_Load(object sender, EventArgs e)
        {
            ddlsite.Text = Session["Sitealiasname"].ToString();
    }
在Pageload中尝试将会话值绑定到Dropdowlist中的代码


Dropdownlist没有您在此处使用的文本属性。您必须首先填充下拉列表,然后选择要显示的值

首先,您应该通过在下拉列表中添加项 items.add

下拉列表支持的属性列表 你可以试试

用于SAN功能

    List<String> sitenames=null;
    using (DataReader  r = d.ExecuteReader())
    {    
       sitenames = r.AutoMap<string>().ToList();
    }
    Session["Sitealiasname"] = sitenames;
试试这个

//添加这一行 ---编辑-------

using System.Linq;
使用System.Collections.Generic;
检查此代码,如果我完全理解你需要什么,那么这将为你工作

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        SAN();
        bind();


    }
}

private void bind()
{
    ArrayList ar = new ArrayList();
    ar.Add("first");
    ar.Add("Second");
    ar.Add("Third");
    ar.Add("Four");
    ar.Add("Five");
    ar.Add("Six");
    ar.Add("Seven");
    DropDownList1.DataSource = ar;
    DropDownList1.DataBind();
    DropDownList1.SelectedValue = Session["Sitealiasname"].ToString();
}

public void SAN()
    {
        cn.Open();
        string sq = "select  Sitealiasname from tbl_Sitemaster where sitename in (select sitename from tbl_emploeedetails where employeestatus='L' and employeeid='" + Session["EMPID"].ToString() + "') and    status='A' order by Sitealiasname asc";
        SqlCommand d = new SqlCommand(sq, cn);
        SqlDataReader r;
        r = d.ExecuteReader();
        while (r.Read())
        {
            Label4.Text = r["Sitealiasname"].ToString().Trim();
            Session["Sitealiasname"] = Label4.Text;//Suppose here session value "first"
        }

        cn.Close();

    }

如果您不想要什么,请告诉我。

很难理解SAN在哪里被调用。必须在加载页面之前调用它,才能定义会话值。我还将调试DB调用,以确保查询返回一个值…是否要在下拉列表中显示会话值?请您更清楚地说明您的问题,您编写的代码没有产生任何效果。Aravind您想在下拉列表中显示会话值吗?假设你在dropdownlist中有三个项目1、2、3,会话值为2。那么你想在dropdownlist中有两个项目?是吗?@stay\u Hunger:是的,朋友我已经有一个项目与dropdownlist有关联了,朋友。出于安全目的,我必须选择与会话值相等的项。我已经有了一个包含下拉列表的项。出于某种安全目的,我必须显示与会话值相等的项OK,然后使用ddlsite.SelctedValue=session[Sitealiasname];要设置会话的值。Get error friend找不到类型或命名空间名称“List”是否缺少using指令或程序集@Aravind Sai问题是否已解决?再次,Get error friend“object”不包含“ToListBy using code first、second、third、,在dropdownlist中进行第四次绑定,我将second分配给session对象。在页面加载时,我将second作为dropdownlist中的选定值
using System.Linq;
public void SAN()
    {
        cn.Open();
        string sq = "select  Sitealiasname from tbl_Sitemaster where sitename in (select `sitename from tbl_emploeedetails where employeestatus='L' and employeeid='" + Session["EMPID"].ToString() + "') and    status='A' order by Sitealiasname asc";`
        SqlCommand d = new SqlCommand(sq, cn);
        SqlDataReader r;
        r = d.ExecuteReader();
 List<string> sitnames = new  List<string>();
        while (r.Read())
        {
            sitename.Add(r["Sitealiasname"].ToString().Trim());
        }

        cn.Close();
Session["Sitealiasname"] = sitename
    }



 protected void Page_Load(object sender, EventArgs e)
    {
///Bind data here


if(Session["Sitealiasname"] != null){
       ddlsite.DataSource = Session["Sitealiasname"].ToList();
       ddlsite.DataBind();
}
}
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        SAN();
        bind();


    }
}

private void bind()
{
    ArrayList ar = new ArrayList();
    ar.Add("first");
    ar.Add("Second");
    ar.Add("Third");
    ar.Add("Four");
    ar.Add("Five");
    ar.Add("Six");
    ar.Add("Seven");
    DropDownList1.DataSource = ar;
    DropDownList1.DataBind();
    DropDownList1.SelectedValue = Session["Sitealiasname"].ToString();
}

public void SAN()
    {
        cn.Open();
        string sq = "select  Sitealiasname from tbl_Sitemaster where sitename in (select sitename from tbl_emploeedetails where employeestatus='L' and employeeid='" + Session["EMPID"].ToString() + "') and    status='A' order by Sitealiasname asc";
        SqlCommand d = new SqlCommand(sq, cn);
        SqlDataReader r;
        r = d.ExecuteReader();
        while (r.Read())
        {
            Label4.Text = r["Sitealiasname"].ToString().Trim();
            Session["Sitealiasname"] = Label4.Text;//Suppose here session value "first"
        }

        cn.Close();

    }