我可以从Web服务获取公共变量吗?

时间:2013-08-27 17:11:30

标签: asp.net web-services

我有一个Web服务,我用它从数据库中收集一些信息。只是几个字符串。但是,而不是返回我的功能。我想制作一个我以后可以调用的get函数。但是,在输入一些断点之后,一旦调用从刚从数据库中拉出它们的服务函数返回到我的主项目,我所存储的变量似乎变为null。

显然,我不确定网络服务是如何运作的。是否有一种特殊的方法来设置会话变量?

感谢

 [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();
        }
    }

1 个答案:

答案 0 :(得分:0)

如果将它存储在类变量中,则

Demogs在调用之间不可用。您需要将其存储在其他地方(会话,任何地方)。每次调用服务时,您都会获得服务类的新实例。