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

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 に答える
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 に答える