获取在asp页面加载中声明的变量

时间:2017-05-25 15:24:30

标签: c# asp.net global-variables

我有这个变量x。它包含我需要用来插入另一个表的ID。

protected void Page_Load(object sender, EventArgs e)
 {

     if (!Page.IsPostBack)
     {
         int x = Convert.ToInt32(Request.QueryString["id"]);

         // Create Connection
         SqlConnection con = new SqlConnection(conn);
         // Create Command
         SqlCommand cmd = new SqlCommand();
         cmd.Connection = con;
         cmd.CommandText = "SELECT Name, FROM Hardware WHERE ID = " + x;
         //Create DataReader
         SqlDataReader reader;
         con.Open();
         reader = cmd.ExecuteReader();
         dlstDetails.DataSource = reader;
         dlstDetails.DataBind();
     }
 }

我想在这里访问它:

protected void btnBook_Click(object sender, EventArgs e)
{
    //get x    
}

我该怎么做?

1 个答案:

答案 0 :(得分:3)

网络是无状态的,你可以从查询字符串Request.QueryString["id"]中提取它,也可以像这样使用Session

int x = Convert.ToInt32(Request.QueryString["id"]);
Session["X"] = x;

然后:

protected void btnBook_Click(object sender, EventArgs e)
{
    if( Session["X"] != null)
    {
        int x = Convert.ToInt32(Session["X"].ToString());
    }
 }

此外,您应该知道此类代码对SQL Injection开放,您应始终使用parameterized queries来避免SQL注入。