是否有任何方法可以在c#中定义全局变量,这些变量不应该是静态的,因为静态变量值会在飞行中发生变化。
答案 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并在代码中设置和使用。由于不同用户的会话不同,它可以正常工作。
public string yourProp {
get {return Session["Key"].ToString()}
set {Session["Key"]=value}
}
您还需要在页面加载!ispostback
上初始化或设置一些值,以便没有null reference error.