如何在ASP.net中使用全局变量而不将其用作静态变量。

时间:2014-01-27 05:02:31

标签: c# asp.net

是否有任何方法可以在c#中定义全局变量,这些变量不应该是静态的,因为静态变量值会在飞行中发生变化。

2 个答案:

答案 0 :(得分:2)

一般来说,你应该试着摆脱将这些事物视为全局变量的习惯。但是,该类的实例成员的行为与“全局变量”相同,但仅在每个请求的范围内:

public class MyPage : Page
{
    private SqlConnection _conn;

    protected void Page_Load(object sender, EventArgs e){
        _conn = new SqlConnection(connectionString);
    }

    protected void btnInsert_Click(object sender, EventArgs e){
        using (var command = new SqlCommand(commandString, _conn)){
            command.ExecuteNonQuery();
        }
    }
}

请注意,在每个请求中,您将获得一个新的SqlConnection实例 - 它将没有它在上一个请求中所做的值。

答案 1 :(得分:1)

我认为你可以使用Seesion变量。

 Session["Key"]=value;

创建属性get并在代码中设置和使用。由于不同用户的会话不同,它可以正常工作。

编辑1

 public string yourProp {
     get {return Session["Key"].ToString()} 
     set {Session["Key"]=value}
 }

您还需要在页面加载!ispostback上初始化或设置一些值,以便没有null reference error.