C# 如何在会话中检索单个列的多个值
我网站上的每个用户都有一个注册id。有一些紧急联系人id与此注册id关联 例如:C# 如何在会话中检索单个列的多个值,c#,asp.net,mysql,C#,Asp.net,Mysql,我网站上的每个用户都有一个注册id。有一些紧急联系人id与此注册id关联 例如: EmerContact_id Reg_id 91 1 92 1 93 1 94 1 95 1 现在我想将这些紧急联系人id存储到会话中,如下所示: Session["Emer1"] Session["Emer2"]
EmerContact_id Reg_id
91 1
92 1
93 1
94 1
95 1
现在我想将这些紧急联系人id存储到会话中,如下所示:
Session["Emer1"]
Session["Emer2"]
Session["Emer3"]
Session["Emer4"]
Session["Emer5"]
我怎样才能做到这一点
我正在考虑使用:
while(reader.read()) { ... }
但我不知道如何使用它。您可以在会话中存储完整的列表或数据集,但不建议这样做,但您可以这样做 获取时,可以将其强制转换为所需的类型
简单易用您可以在会话中存储完整的列表或数据集,但不建议这样做,但您可以这样做 获取时,可以将其强制转换为所需的类型
简单易懂的如果我理解你的问题 请试试这个
string[] EmerContactList = new string[]{"Emer1","Emer2","Emer3"};
Session["values"] = EmerContactList ;
访问
string[] results= (string[])Session["values"];
如果我理解你的问题 请试试这个
string[] EmerContactList = new string[]{"Emer1","Emer2","Emer3"};
Session["values"] = EmerContactList ;
访问
string[] results= (string[])Session["values"];
您可以使用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这样的集合对象并将其序列化到会话中。您可以使用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这样的集合对象并将其序列化到会话中。您还可以使用一个会话对象来存储值
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 myList=ListSession[EmerContacts]
我手工输入了一些,所以它可能无法编译,但你应该了解它的要点
当您使用这种方法时,您可以轻松地对集合进行分类。使用您的方法会使这变得有点困难。您还可以使用一个会话对象来存储值
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 myList=ListSession[EmerContacts]
我手工输入了一些,所以它可能无法编译,但你应该了解它的要点
当您使用这种方法时,您可以轻松地对集合进行分类。使用您的方法会使这一点更加困难。您需要的是,您想存储EmerContact\u id并基于此获取注册id,还是想同时存储这两个id?@huMptyduMpty我想同时存储这两个id…您需要的,您是要存储EmerContact\u id并根据该id获取注册id,还是要同时存储两个id?@huMptyduMpty我想同时存储两个id…我尝试了此操作,但跳过了第一个值。i、 我得到的会话[Emer1]=92,而不是91@用户1776428这没有任何意义,可能这是一个订购问题-尝试更改您的查询以从[表]order by EmerContact_id asc中选择EmerContact_id@punter这将为每个ID创建一个会话,我认为您应该使用一个对象,例如List,并将其存储在会话中,如下所示。我知道您要求多个会话,因此此答案更准确-但是,我认为最好使用一个会话。我尝试了此方法,但跳过了第一个值。i、 我得到的会话[Emer1]=92,而不是91@用户1776428这没有任何意义,可能这是一个订购问题-尝试更改您的查询以从[表]order by EmerContact_id asc中选择EmerContact_id@punter这将为每个ID创建一个会话,我认为您应该使用一个对象,例如List,并将其存储在会话中,如下所示。我知道你要求多个会话,所以这个答案更准确-但是,我认为最好使用一个会话。