2

我网站上的每个用户都有一个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

4 回答 4

1

您可以在会话中存储完整的列表或数据集,但不建议这样做,但您可以这样做。

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

简单易行

于 2012-10-26T08:26:01.063 回答
1

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

请试试这个

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

访问

string[] results= (string[])Session["values"];
于 2012-10-26T08:27:12.393 回答
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并将其序列化到会话中。

于 2012-10-26T08:30:15.670 回答
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<int> myList = (List<int>)Session["EmerContacts"];

我手写了一些,所以它可能无法编译,但你应该明白它的要点。

当您使用这种方法时,您可以轻松地遍历集合。使用您的方法会使这变得更加困难。

于 2012-10-26T08:50:14.177 回答