如何从文本框字段中获取的值更新记录

时间:2013-06-06 11:25:09

标签: c# asp.net webforms

我正在使用编辑和删除选项在Web表单中创建记录列表。我已在文本框字段中检索了值以进行更新。现在,当 用户单击更新按钮,记录将更新。

如何将其保留在同一页面上或重定向到其他页面?

这是我的代码:

public partial class WebForm1 : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    if (!Page.IsPostBack)
    {
       binddata();
    }
 }
   SqlConnection con;
   SqlDataAdapter da;
   DataSet ds;

  void   binddata()
  {
   string pid = Request.QueryString["Prod_Id"];
   con = new SqlConnection("Data Source=.\\sqlexpress; initial catalog=PracticeDb; user id=sa; pwd=manager;");
    con.Open();
    da = new SqlDataAdapter("Select * from Products where Prod_Id='" + pid + "'", con);
    DataSet ds = new DataSet();
    da.Fill(ds);
    con.Close();

   string  P_Name = ds.Tables[0].Rows[0]["Prod_Name"].ToString();
   string U_Prce = ds.Tables[0].Rows[0]["Unit_Price"].ToString();
   string I_Hnd = ds.Tables[0].Rows[0]["In_Hand"].ToString();
   string Fxd = ds.Tables[0].Rows[0]["Fixed"].ToString();
   string Stus = ds.Tables[0].Rows[0]["Status"].ToString();

   TextBox1.Text = P_Name;
   TextBox2.Text = U_Prce;
   TextBox3.Text = I_Hnd;
   TextBox4.Text = Fxd;
   TextBox5.Text = Stus;
 }

 protected void Unnamed1_Click(object sender, EventArgs e)
 {                  
   string pid = Request.QueryString["Prod_Id"];
   var Pd_nme = TextBox1.Text;
   decimal Uni_prce = decimal.Parse(TextBox2.Text);
   int In_hnd = int.Parse(TextBox3.Text);
   string Fxd = TextBox4.Text;
   string Stus = TextBox5.Text;
   SqlConnection con = new SqlConnection();
   con.ConnectionString = ("Data Source=.\\sqlexpress; initial catalog=PracticeDb; user id=sa; pwd=manager;");
    con.Open();
    string qry = "UPDATE PRODUCTS SET Prod_Name='" + Pd_nme + "',Unit_Price='" + Uni_prce + "',In_Hand='" + In_hnd + "',Fixed='" + Fxd + "',Status='" + Stus + "' where Prod_Id='" + pid + "'";
    SqlCommand cmd = new SqlCommand(qry, con);
    cmd.ExecuteNonQuery();
    con.Close();                   
 }
}
}

感谢。

1 个答案:

答案 0 :(得分:0)

你试图在回发上访问查询字符串,这没有任何意义......现在你有多个选项来实现你在这里尝试做的...我将尝试列出一个或两个他们....

隐藏字段: 使用以下命令在页面中创建隐藏字段:

<asp:HiddenField runat="server" ID="hdn_field" />

并在您的page_load中将其值设置为Prod_Id中的QueryString ...现在您只需hdnField.Value即可在回发中访问它。

<强>视图状态: 您可以将值保存在ViewState中并在回发中使用它....

<强> AJAX: 创建对相同或不同页面的ajax调用,并通过将其序列化为JSON / XML将对象发送到服务器,然后从该页面处理更新