Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 更新数据库sql server中的记录时出错_Asp.net_Sql Server - Fatal编程技术网

Asp.net 更新数据库sql server中的记录时出错

Asp.net 更新数据库sql server中的记录时出错,asp.net,sql-server,Asp.net,Sql Server,我有一个问题:我有一个页面用于向数据库中插入数据,还有一个页面用于根据每个项目的查询字符串更新数据,当我从textbox更新字段时,返回相同的数据进行更新:从page_load中的textbox更新数据库中的相同数据 在页面中加载 con.Open(); //For edit items if (Request.QueryString["id"] != null) { Page.Title = "Edit Items"; DataTable dt = Get_Items(Req

我有一个问题:我有一个页面用于向数据库中插入数据,还有一个页面用于根据每个项目的查询字符串更新数据,当我从textbox更新字段时,返回相同的数据进行更新:从page_load中的textbox更新数据库中的相同数据

页面中加载

con.Open();

//For edit items
if (Request.QueryString["id"] != null)
{
    Page.Title = "Edit Items";
    DataTable dt = Get_Items(Request.QueryString["id"].ToString());
    txt_item_name.Text = dt.Rows[0]["name"].ToString();  
    txt_end_date.Text = dt.Rows[0]["endDate"].ToString();
    Btn_addItem.Text = "Edit item";
}

protected void Btn_addItem_Click(object sender, EventArgs e)
{
    if (Btn_addItem.Text.Equals("Add Item"))
    {
        SqlCommand cmd = new SqlCommand("addedit", con);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@item_id", "-1");
        cmd.Parameters.AddWithValue("@name", txt_item_name.Text);
        cmd.Parameters.AddWithValue("@endDate", txt_end_date.Text);

        con.Open();
        cmd.ExecuteNonQuery();

        lbl_msg.Text = "Item added....";
        con.Close();
    }
    else
    {
        SqlCommand cmd = new SqlCommand("addedit", con);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@item_id", Request.QueryString["id"]);
        cmd.Parameters.AddWithValue("@name", txt_item_name.Text);
        cmd.Parameters.AddWithValue("@endDate", txt_end_date.Text);

        con.Open();
        cmd.ExecuteNonQuery();

        lbl_msg.Text = "Item edited....";
        con.Close();
    }
}

如果我正确理解您的问题“您无法使用您在文本框中输入的新值更新数据库。它将再次使用旧值更新数据库”

你需要检查一下!在回发过程中,当Btn\u addItem\u单击之前,将调用从DB绑定文本框的代码,并将文本框的值设置回DB的旧值时,在页面中加载IsPostback。见以下更新代码:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            con.Open();

            //For edit items
            if (Request.QueryString["id"] != null)
            {
                Page.Title = "Edit Items";
                DataTable dt = Get_Items(Request.QueryString["id"].ToString());
                txt_item_name.Text = dt.Rows[0]["name"].ToString();
                txt_end_date.Text = dt.Rows[0]["endDate"].ToString();
                Btn_addItem.Text = "Edit item";
            }
        }
    }

希望能有帮助

非常感谢亲爱的,我几个星期前就遇到了这个问题,现在已经100%正常工作了,我希望下次能对我有所帮助:)很高兴它能帮上忙。您应该阅读有关ASP.NET页面生命周期的内容,以便更好地了解其工作原理。请参阅下面的链接。永远记住使用!除非您有特殊情况,否则无论何时在页面加载中绑定控件,我都会返回。嗨,兄弟,你好。。。。请看问题所在