天堂落日 发布留言 2008-6-8 12:07
【已解决】GridView中如何获取修改后的某个单元格的值
如题:
调用NotrhWind数据库,并将数据绑定至GridView1中,并添加了修改功能,其他功能都没问题,现在遇到的问题是点击更新之后无法获取GridView1中修改后的数据(得到的都是旧的数据),哪位朋友知道的帮忙解决一下
下边是我写的获取新内容的代码:
[code] protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string strCus = this.GridView1.DataKeys[e.RowIndex][0].ToString();
string strCompanyName = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[0].Controls[0]).Text.ToString();
string strContractName = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text.ToString();
string strAddress = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text.ToString();
updateCustomers(strCus, strCompanyName, strContractName, strAddress);
}[/code]
[ 本帖最后由 天堂落日 于 2008-6-8 12:11 编辑 [/it]]
[ 本帖最后由 天堂落日 于 2008-6-18 10:18 编辑 [/it]]
multiple19O2 发布留言 2008-6-8 19:43
抱歉 想帮你的,但是这堂课我没听讲……
hebingbing 发布留言 2008-6-9 09:46
updateCustomers(strCus, strCompanyName, strContractName, strAddress);
这个方法不贴出来看不出来有什么名堂……
青格儿 发布留言 2008-6-10 13:21
得到的都是旧的数据?如果数据库变了,那怎么会是旧数据啊?没更新成功吧?不太明白怎么得到的都是旧数据?
snipen 发布留言 2008-6-10 13:30
在Page_Load 事件中添加 if(!Page.IsPostBack){}
天堂落日 发布留言 2008-6-11 16:24
回复 3# hebingbing 的帖子
以下内容为程序代码: public void updateCustomers(string strCus, string strCompanyName, string strContractName, string strAddress) { SqlConnection con = new SqlConnection(strCon); SqlCommand cmd = new SqlCommand("update Customers set CompanyName='" + strCompanyName + "', ContactName='" + strContractName + "' ,Address='" + strAddress + "' where CustomerID='" + strCus + "'", con); con.Open(); int intResult=cmd.ExecuteNonQuery(); con.Close(); gridviewBind(); } |
我说的无法获取新数据是指在上边的GridView1_RowUpdating函数种,字符串型变量strCompanyName赋值问题,没有获取修改后的GridView值
如果把GridView1_RowUpdating函数当中的赋值语句换成直接赋值,譬如说string strCompanyName ="aaa";这样的语句就可以正常修改数据库,我调试了一下,问题就处在赋值语句那里,不知道怎么获取
hebingbing 发布留言 2008-6-11 17:03
那你把你的public void updateCustomers(string strCus, string strCompanyName, string strContractName, string strAddress)
方法先改成输出那几个变量看看你获取的是什么值……
还有就是如果你的GridView1是在page_load事件中绑定的话,确保加了ispostback的判断……
冰彩虹 发布留言 2008-6-11 21:38
把你Page_Load事件里的代码贴出来看看,问题肯定出在那里
天堂落日 发布留言 2008-6-18 10:17
[un]snipen[/un] 在 2008-6-10 13:30 的发言:[/bo]
在Page_Load 事件中添加 if(!Page.IsPostBack){} |
确实是忘记添加IsPostBack判断,呵呵
添加之后就OK了,问题已解决,谢谢各位
页: [1]