当我尝试使用文本框值更新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();
}
答案 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不是空白,那么您的值可能不正确,您需要找出原因。
它可能看起来不像,但您拥有确定所见问题的根本原因所需的一切。