我网站上的每个用户都有一个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()) { ... }
但我不知道如何使用它。
答案 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"];
我输入了一些,所以它可能无法编译,但你应该得到它的要点。
当您使用此方法时,您可以轻松地对集合进行迭代。使用您的方法会使这更加困难。