C#.NET GRIDVIEW 更新,未编辑的列,无法经过算法,重新取值,更新入数据库。 50
在gridview中有4列。小时,分钟,秒,分别用H,MIN,S代替。后面有个总时间。我截取部分代码说明,请高手帮忙。protectedvoidGridView1_Row...
在 gridview 中 有4列。 小时,分钟,秒,分别用H,MIN,S 代替。 后面有个总时间。
我截取部分代码说明,请高手帮忙。
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string s1 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim();
string s2 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim();
string s3 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim();
string s4 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim();
string s5 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString().Trim();
string s7 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[7].Controls[0])).Text.ToString().Trim();
string s9 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[9].Controls[0])).Text.ToString().Trim();
if (s3 == "" && s4 == "" && s5 == "")
{
dureetotal = (0).ToString("0.00");
}
else
{
dureetotal = (heure1 * 60 + minute1 + seconde1 / 60).ToString("0.00");
}这里就是 dureetotal 就是把小时分钟秒都换算成分钟的算法。
然后插入数据库
comparatif.comparatif_update( heure, minute, seconde, dureetotal)
GridView1.DataBind();}
但是 页面显示的结果, 分钟 时间 秒 都更新了,唯独总时间没有更新还是原来的。
comparatif_update 这个函数是bll里的。
SQL 更新语句写在了dal里.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
GridView1.DataBind();
}这里判断是否第一次返回。现在就是不知道问题出在哪,总时间是不能编辑的。我ENABLED掉了。 能编辑的都能更新进入数据库。总时间却不能自动改变。请教
能具体点吗? 前3个都是可以更新的。那说明SQL是没错的把。 总时间更新不了应该是没传进去。我在函数里断点。总时间是算出来的。但是没有传入更新函数是为什么? 展开
我截取部分代码说明,请高手帮忙。
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string s1 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim();
string s2 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim();
string s3 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim();
string s4 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim();
string s5 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString().Trim();
string s7 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[7].Controls[0])).Text.ToString().Trim();
string s9 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[9].Controls[0])).Text.ToString().Trim();
if (s3 == "" && s4 == "" && s5 == "")
{
dureetotal = (0).ToString("0.00");
}
else
{
dureetotal = (heure1 * 60 + minute1 + seconde1 / 60).ToString("0.00");
}这里就是 dureetotal 就是把小时分钟秒都换算成分钟的算法。
然后插入数据库
comparatif.comparatif_update( heure, minute, seconde, dureetotal)
GridView1.DataBind();}
但是 页面显示的结果, 分钟 时间 秒 都更新了,唯独总时间没有更新还是原来的。
comparatif_update 这个函数是bll里的。
SQL 更新语句写在了dal里.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
GridView1.DataBind();
}这里判断是否第一次返回。现在就是不知道问题出在哪,总时间是不能编辑的。我ENABLED掉了。 能编辑的都能更新进入数据库。总时间却不能自动改变。请教
能具体点吗? 前3个都是可以更新的。那说明SQL是没错的把。 总时间更新不了应该是没传进去。我在函数里断点。总时间是算出来的。但是没有传入更新函数是为什么? 展开
3个回答
展开全部
传递索引不对,导致无法更新吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dureetotal = (heure1 * 60 + minute1 + seconde1 / 60).ToString("0.00");
这句之前没看到对heure1heure1、minute1、seconde1赋值?你可以在这句后先把dureetotal 的值用个label输出看看,是否正确。
如果上面的没问题,问题肯定出在comparatif.comparatif_update( heure, minute, seconde, dureetotal)里了。
这句之前没看到对heure1heure1、minute1、seconde1赋值?你可以在这句后先把dureetotal 的值用个label输出看看,是否正确。
如果上面的没问题,问题肯定出在comparatif.comparatif_update( heure, minute, seconde, dureetotal)里了。
追问
label 测试没有问题。我把简单的代码给省去了呵呵。 label 对每个变量都测试过了。没有问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询