当前位置: 代码迷 >> ASP.NET >> public static修改值无效解决办法
  详细解决方案

public static修改值无效解决办法

热度:3318   发布时间:2013-02-25 00:00:00.0
public static修改值无效
class类定义
C# code
public static string connectionString;//此处值每次新赋的值都取得到 都正确    public static SqlConnection Connection    {        get        {            if (connection == null)            {[color=#FF0000]                connection = new SqlConnection(connectionString);//此处connectionString值不变 依然是第一次的值[/color]                try                {                    connection.Open();                }                catch { }            }            else if (connection.State == System.Data.ConnectionState.Closed)            {                connection.Open();            }            else if (connection.State == System.Data.ConnectionState.Broken)            {                connection.Close();                connection.Open();            }            return connection;        }    }


test.aspx.cs
C# code
class.connectionString="asd";//第二次赋值class.connectionString="ABC";


------解决方案--------------------------------------------------------
static会记录为上次的值
保证不用时,将变量清空
------解决方案--------------------------------------------------------
静态成员通常用于表示不会随对象状态而变化的数据或计算
------解决方案--------------------------------------------------------
if (connection == null)
{
connection = new SqlConnection(connectionString);//此处connectionString值不变 依然是第一次的值 try
{
connection.Open();
}
catch { }
}
这段代码只执行了一遍, 你第二次获取connection的时候就不跑这儿了 所以connectionString还是老的
------解决方案--------------------------------------------------------
建议看看static的定义
------解决方案--------------------------------------------------------
静态成员只初始化一次,生命周期=网页生命周期
------解决方案--------------------------------------------------------
定义成非静态
------解决方案--------------------------------------------------------
探讨
引用:
定义成非静态
那样其他页面引用不到了

------解决方案--------------------------------------------------------
探讨
引用:
定义成非静态
那样其他页面引用不到了
  相关解决方案