簡體   English   中英

如何在會話中檢索單個列的多個值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM