如何在会话中检索单个列的多个值

时间:2012-10-26 07:59:00

标签: c# asp.net mysql

我网站上的每个用户都有一个reg_id。有一些emergency_contact_id与此reg_id相关联。

例如:

EmerContact_id  Reg_id    
  91              1    
  92              1    
  93              1    
  94              1    
  95              1

现在我想将这些EmerContact_id存储到这样的会话中:

Session["Emer1"]    
Session["Emer2"]    
Session["Emer3"]    
Session["Emer4"]    
Session["Emer5"]

我怎样才能做到这一点?

我正在考虑使用:

while(reader.read()) { ... }

但我不知道如何使用它。

4 个答案:

答案 0 :(得分:1)

您可以在会话中存储完整列表或数据集,但不推荐使用它,但您可以这样做。

提取时,您可以将其转换为所需的类型。

简单易用

答案 1 :(得分:1)

如果我理解你的问题......

请试试这个

string[] EmerContactList = new string[]{"Emer1","Emer2","Emer3"};
Session["values"] = EmerContactList ;

访问

string[] results= (string[])Session["values"];

答案 2 :(得分:1)

您可以使用MySqlDataReader并使用索引标记迭代结果,如下所示。

using (MySqlConnection dbConnection = new MySqlConnection("connectionstring"))
{
    dbConnection.Open();

    using (MySqlCommand dbCommand = new MySqlCommand("select EmerContact_id from [Table] order by EmerContact_id asc;", dbConnection))
    {
        using (MySqlDataReader dbReader = dbCommand.ExecuteReader())
        {
            int index = 1;

            while (dbReader.Read())
            {
                Session["Emer" + index.ToString()] = dbReader[0].ToString();

                index++;
            }
        }
    }

    dbConnection.Close();
}

您还可以使用像List这样的集合对象,并将其序列化到会话中。

答案 3 :(得分:1)

您还可以使用一个会话对象来存储值...

List<int> EmerContacts = new List<int>();

using (MySqlConnection dbConnection = new MySqlConnection("connectionstring"))
{
    using (MySqlCommand dbCommand = new MySqlCommand("select EmerContact_id from [Table];", dbConnection))
    {
        using (MySqlDataReader dbReader = dbCommand.ExecuteReader())
        {

            while (dbReader.Read())
            {
                EmerContacts.Add((int)dbReader[0].ToString());

             }
        }
    }
}

Session["EmerContacts"] = EmerContacts;

当您需要使用列表时,您只需将会话转换回List ...

List<int> myList = (List<int>)Session["EmerContacts"];

我输入了一些,所以它可能无法编译,但你应该得到它的要点。

当您使用此方法时,您可以轻松地对集合进行迭代。使用您的方法会使这更加困难。