0

DB から情報を収集するために使用している Web サービスがあります。ほとんどの場合、ほんの数文字列です。ただし、関数に戻る代わりに。後で呼び出すことができる get 関数を作りたかったのです。ただし、いくつかのブレークポイントを配置した後、呼び出しがDBからそれらをプルしたばかりのサービス関数からメインプロジェクトに戻ると、保存した変数がnullになるようです。

明らかに、Web サービスが実際にどのように機能するかはわかりません。セッション変数を設定するなど、これを行う特別な方法はありますか?

ありがとう

 [WebMethod]
    public String getDemogs()
    {
        return Demogs;
    }



    [WebMethod]
    public void LoadUserSites(string username, string siteUse)
    {
        // Declare the SslConnection class variable.
        SqlConnection sSitesConn = new SqlConnection(Util.ConStrEpcrProd);
        SqlCommand sSitesCmd = new SqlCommand();
        sSitesCmd.Connection = sSitesConn;
        SqlDataReader objSitesReader;

        try
        {
            sSitesConn.Open();

            if (siteUse == "Main")
            {
                sSitesCmd.CommandText = "SELECT AgencyName, Demog FROM dbo.UserAdminPermissions WHERE UserName = '" + username + "'";

                objSitesReader = sSitesCmd.ExecuteReader();

                // Reset the string...
                Demogs = string.Empty;
                Agencies = string.Empty;

                while (objSitesReader.Read())
                {
                    Demogs += objSitesReader["Demog"].ToString() + ",";
                    Agencies += "'" + objSitesReader["AgencyName"].ToString() + "',";
                }



                objSitesReader.Close();
                objSitesReader.Dispose();
            }


        finally
        {
            sSitesConn.Close();
            sSitesConn.Dispose();
            sSitesCmd.Dispose();
        }
    }
4

1 に答える 1

0

Demogsクラス変数に格納すると、呼び出し間で使用できなくなります。他の場所に保存する必要があります(セッション、どこでも)。サービスを呼び出すたびに、常にサービス クラスの新しいインスタンスを取得します。

于 2013-08-27T20:53:00.947 に答える