[英]How to retrieve multiple values of single column in session
我網站上的每個用戶都有一個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()) { ... }
但是我不知道如何使用它。
您可以在會話中存儲完整列表或數據集,但是不建議這樣做,但是您可以這樣做。
提取時,可以將其轉換為所需的類型。
簡單容易
如果我理解您的問題...
請嘗試這個
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
類的集合對象,並將其序列化到會話中。
您還可以使用一個會話對象來存儲值...
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"];
我手動輸入了一些內容,因此它可能無法編譯,但是您應該了解它的要旨。
使用此方法時,您可以輕松地在集合上進行提示。 使用您的方法會使這變得更加困難。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.