我有这个变量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
}
我该怎么做?
答案 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注入。