Gridview数据更新按文本框

时间:2011-10-13 06:32:19

标签: c# asp.net

当我尝试使用文本框值更新Datagridview时,它会在文本框中显示空值 我的代码是this.wt的错误。 bnddata()将数据集分配给gridview

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        bnddata();

    }
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];


        string emailid = GridView1.Rows[0].Cells[0].Text;


        TextBox txtadress = (TextBox)row.FindControl("txtadress");

        con.Open();

        string upd = "update empeasty set adress='" + txtadress.Text+ "' where emailid='"+emailid+"'";

        SqlCommand cmd = new SqlCommand(upd,con);


        int i=cmd.ExecuteNonQuery();

        if (i > 0)
            Response.Write("Data updated");
        else
            Response.Write("Data not updated");

        con.Close();

        GridView1.EditIndex = -1;

        bnddata();
}

1 个答案:

答案 0 :(得分:1)

让我们根据您在问题和评论中所知道的内容来解决这个问题。

您正在尝试更新数据库中的数据(地址),但在绑定数据后,它会在回发时返回空白。

我没有在您的代码中看到任何异常处理,并且您没有指出任何错误,因此告诉我代码正在执行而没有任何运行时异常。由于回发似乎已完成(基于我们所知),这告诉我Update SQL命令存在问题。

string upd = "update empeasty set adress='" + txtadress.Text+ "' where emailid='"+emailid+"'";

除非您在应用程序级别进行异常处理,否则假定该命令已执行是合理的。这意味着txtAddress.Text为空,或者数据库中没有具有匹配的emailid的表中的行。

查看SQL字符串实际外观的最快方法是单击左侧垂直灰色栏,在您设置SQL的行旁边设置一个断点(应显示一个红点)。

然后点击F5(以调试模式启动应用程序),在文本框中输入地址的值,然后点击提交(或任何你需要进行更新的按钮)。当程序到达设置断点的位置时,您可以单步执行代码,然后可以检查txtAddress.Text,emailid和upd的值以查看它们是什么。

如果txtAddress.Text或emailid为空,则表示您的答案。如果emailid不是空白​​,那么您的值可能不正确,您需要找出原因。

它可能看起来不像,但您拥有确定所见问题的根本原因所需的一切。