System.Web.HttpContext.Current.Session["server"].ToString()用这种方法为什么在类中取不到Session值 .

解决方案 »

  1.   

    要看你在哪里调用这个方法一般在page_load中使用
      

  2.   

    if (Session["server"]!=null)
    {
    string value=System.Web.HttpContext.Current.Session["server"].ToString();
    }
    还要注意你把它放在的事件。
      

  3.   

    page_load里if (Session["server"]!=null) 

    string value = System.Web.HttpContext.Current.Session["server"].ToString(); 
    ResPonse.Write(value );
      

  4.   

    System.Web.HttpContext.Current.Session["server"].ToString();
    是放在
    page 继承类中?
      

  5.   

    在取Session的值的时候最好先判断一下是否为nullpage_load里 if (Session["server"]!=null) 

    string value = System.Web.HttpContext.Current.Session["server"].ToString(); 
    ResPonse.Write(value );
      

  6.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;/// <summary>
    /// SqlConnections 的摘要说明
    /// </summary>namespace System.mySQLConnection
    {    public class SqlConnections : System.Web.UI.Page
        {
            //当前连接的是第几个。
            static int count = 0;        //最大连接量
            static int maxCount = 30;
            //static SqlConnection[] sqlConns = new SqlConnection[maxCount];
            public static SqlConnection sqlConns = new SqlConnection();
            //自己创建自己
            static SqlConnections myConn = new SqlConnections();        //初始化
            private  SqlConnections()
            {
        //for (int i = 0; i < maxCount; i++)
        //{
    //HttpContext.Current.Response.Write(System.Web.HttpContext.Current.Session["dbname"].ToString());
    //HttpContext.Current.Response.End();
        //}
            }
    //System.Configuration.ConfigurationSettings.AppSettings["ADOStrs"].ToString()        //根据条件来获取不同的表,与字段。
            public static DataTable GetDataTable(String sqlTest, String tableName)
            {
                try
                {
                    DataSet myDS = new DataSet();
    SqlDataAdapter myAdapater = new SqlDataAdapter(sqlTest, sqlConns);
                    myAdapater.Fill(myDS, tableName);
                    return myDS.Tables[tableName];
                }
                catch (SqlException sqlE)
                {
                    return null;
                }
            }       // 获取数据库连接
            public static SqlConnection GetSQLConnection(string stringconnection)
    {
        sqlConns = new SqlConnection(stringconnection);
        //try
        //{
        //    try
        //    {
        //        sqlConns.Close();
        //    }
        //    catch (Exception eeX)
        //    {
                        
        //    }
                    return sqlConns;
        //}
        //finally
        //{
        //    //当前个数自加。。
        //    //if (count == (maxCount - 1))
        //    //{
        //    //    count = 0;
        //    //}
        //    //else
        //    //{
        //    //    count++;
        //    //}
        //}
            }        //返回一个参数
            public static  String GetNumOneField(String sqlTxt)
            {
        SqlConnection sqlConnTemp = sqlConns;
                try
                {
                    SqlCommand sqlCommT = new SqlCommand(sqlTxt, sqlConnTemp);
                    sqlConnTemp.Open();
                    return sqlCommT.ExecuteScalar().ToString();
                }
                catch (Exception sqlE)
                {
                    return "没有";
                }
                finally
                {
                    sqlConnTemp.Close();
                }
            }        //返回一个参数
            public static String GetNumOneField(SqlConnection sqlConnTemp,SqlTransaction tempSqlTran ,String sqlTxt)
            {
                try
                {
                    SqlCommand sqlCommT = new SqlCommand(sqlTxt, sqlConnTemp);
                    sqlCommT.Transaction = tempSqlTran;
                    return sqlCommT.ExecuteScalar().ToString();
                }
                catch (Exception sqlE)
                {
                    return "没有";
                }
                finally
                {
                    //sqlConnTemp.Close();
                }
            }        /// <summary>
            /// 做 ,修改,删除,
            /// </summary>
            /// <param name="sqlTxt">执行的SQL语句</param>
            /// <returns>返回的结果影响多少行</returns>        public static int UpdateOrDelete(String sqlTxt)
            {
        SqlConnection sqlConnTemp = sqlConns;
                try
                {
                    SqlCommand sqlCommT = new SqlCommand(sqlTxt, sqlConnTemp);
                    sqlConnTemp.Open();
                    return sqlCommT.ExecuteNonQuery();
                }
                catch (SqlException sqlE)
                {
                    return 0;
                }
                finally
                {
                    sqlConnTemp.Close();
                }
            }        public static int UpdateOrDelete(CommandType _CommandType, SqlParameter[] _sqlParas, String sqlTxt)
            {
        SqlConnection sqlConnTemp = sqlConns;
                try
                {
                    SqlCommand sqlCommT = new SqlCommand(sqlTxt, sqlConnTemp);
                    sqlCommT.CommandType = _CommandType;
                    sqlCommT.Parameters.Clear();
                    for (int a = 0; a < _sqlParas.Length; a++)
                    {
                        sqlCommT.Parameters.Add(_sqlParas[a]);
                    }
                    sqlConnTemp.Open();
                    return sqlCommT.ExecuteNonQuery();
                }
                catch (SqlException sqlE)
                {
                    return 0;
                }
                finally
                {
                    sqlConnTemp.Close();
                }
            }        /// <summary>
            /// 带事务的增,删,改数据执行方法(警告:该方法必须 手动开关数据,而且还有手动的提交事务。否则不能更新数据)
            /// </summary>
            /// <param name="_SqlConn">数据库连接对象</param>
            /// <param name="_SqlTran">事务对象</param>
            /// <param name="sqlTxt">执行的Sql语句</param>
            /// <returns></returns>
            public static int UpdateOrDelete(SqlConnection _SqlConn,SqlTransaction  _SqlTran, String sqlTxt)
            {
                SqlConnection sqlConnTemp = _SqlConn;
                try
                {
                    SqlCommand sqlCommT = new SqlCommand(sqlTxt, sqlConnTemp);
                    sqlCommT.Transaction = _SqlTran;
                    return sqlCommT.ExecuteNonQuery();
                }
                catch (SqlException sqlE)
                {
                    return 0;
                }
                
            }        public static int UpdateOrDelete(SqlConnection _SqlConn, SqlTransaction _SqlTran, CommandType _CommandType, SqlParameter [] _sqlParas,  String sqlTxt)
            {
                SqlConnection sqlConnTemp = _SqlConn;
                try
                {
                    SqlCommand sqlCommT = new SqlCommand(sqlTxt, sqlConnTemp);
                    sqlCommT.Transaction = _SqlTran;
                    sqlCommT.CommandType = _CommandType;
                    sqlCommT.Parameters.Clear();
                    for (int a = 0; a < _sqlParas.Length; a++)
                    {
                        sqlCommT.Parameters.Add(_sqlParas[a]);
                    }
                    return sqlCommT.ExecuteNonQuery();
                }
                catch (SqlException sqlE)
                {
                    return 0;
                }
            }        /// <summary>
            /// 有存储过的查询
            /// </summary>
            /// <param name="StoredProcedureName">存储过程的名字</param>
            /// <param name="sqlParas">所有参数</param>
            /// <param name="tableName">表名</param>
            /// <returns>DataTable的结果集</returns>
            public static DataTable GetDataTable(String StoredProcedureName, SqlParameter [] sqlParas,String tableName)
            {
                try
                {
                    DataSet myDS = new DataSet();
    SqlDataAdapter myAdapater = new SqlDataAdapter(StoredProcedureName, sqlConns);
                    myAdapater.SelectCommand.CommandType = CommandType.StoredProcedure;
                    
                    for (int i = 0; i < sqlParas.Length; i++)
                    {
                        if (myAdapater.SelectCommand.Parameters.Contains(sqlParas[i]))
                            myAdapater.SelectCommand.Parameters.RemoveAt(sqlParas[i].ParameterName);
                        myAdapater.SelectCommand.Parameters.Add(sqlParas[i]);
                    }
                    myAdapater.Fill(myDS, tableName);
                    myAdapater.SelectCommand.Parameters.Clear();
                    return myDS.Tables[tableName];
                }
                catch (SqlException sqlE)
                {
                    return null;
                }
               
            }    }}
      

  7.   

    貌似还要继承个接口IRequiresSessionState,然后才能用
      

  8.   

    不行,未将对象引用设置到对象的实例。

     HttpContext.Current.Response.Write(System.Web.HttpContext.Current.Session["server"]);
      

  9.   

    HttpContext.Current 是当前web请求.如果该类的调用不是从web请求进入的,则无该静态实例(System.Web.HttpContext.Current)