根据文本框值更新数据库表

本文关键字:更新 数据库 文本 | 更新日期: 2023-09-27 17:55:09

我正在尝试根据文本框值更新数据库表。但是我无法在数据库中获取新的修改值。

这是我的代码,它在来自数据库的文本框中显示信息

protected void Info()
{
    string sID = Request.QueryString["ID"];
    string sSql = "select * from [fn_Items]('"+sID+"')";
    DataTable tbl1 = new DataTable();
    string sEr = myClass.FillupTable(sSql, ref tbl1);
    if (tbl1.Rows.Count > 0)
    {
        DataRow rd = tbl1.Rows[0];
        txtName.Text = rd["Name"].ToString();
        txtCategory.Text = rd["Category"].ToString();
        DateTime mStart;
        DateTime mFinish;
        Boolean b = false;
        b = DateTime.TryParse(rd["start"].ToString(), out mStart);
        b = DateTime.TryParse(rd["end"].ToString(), out mFinish);
        txtStart.Text = mStart.ToString("dd-MMM-yyyy");
        txtend.Text = mFinish.ToString("dd-MMM-yyyy");
        txtDescription.Text = rd["Description"].ToString();
    }
}

现在,当用户修改文本框数据并单击"保存"时,数据库中的数据应会更改。这是我click_event:

protected void btnSave_Click(object sender, EventArgs e)
{
    using (SqlConnection sqlConn = new 
        SqlConnection("Data Source=MSSQLSERVER2008;Initial Catalog=Items_2;Persist Security Info=True;User ID=sa;Password=password"))
    {
        string query = "UPDATE tbl_Items SET Name = @Name,Category=@Category,start = @start, end = @End,Description = @Description where ID = @ID ";
        SqlCommand cmd = new SqlCommand(query, sqlConn);
        cmd.Parameters.AddWithValue("@ID",txtID.Text);
        cmd.Parameters.AddWithValue("@Name", txtName.Text);
        cmd.Parameters.AddWithValue("@Category", Category.Text);
        cmd.Parameters.AddWithValue("@start", txtStart.Text);
        cmd.Parameters.AddWithValue("@end",txtend.Text);
        cmd.Parameters.AddWithValue("@Description", txtDescription.Text);
        cmd.Connection.Open();
        try
        {
            cmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            throw new Exception("Error " + ex.Message);
        }
    }

在这里,在更新时,在文本框中,我正在获取数据库中存在的值,我需要在其中获取修改后的值。如何获取修改后的值?

根据文本框值更新数据库表

页面加载事件在触发之前先触发 btnSave 的点击事件。使用IsPostBack可以消除这个问题。

protected void Page_Load(object sender, EventArgs e)
{
   if (!IsPostBack)
   {
     Info();
   }
}