• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

DataGrid更新数据问题?

sndy77 2003-12-01 01:00:03
老是出错,各位帮忙看一下,多谢了.

protected void update_Click(Object Sender,DataGridCommandEventArgs e)
{
int id,isPb,import;
id=Convert.ToInt32(e.Item.Cells[0].Text);
CheckBox Pb=(CheckBox)e.Item.Cells[3].Controls[0];
CheckBox Imp=(CheckBox)e.Item.Cells[4].Controls[0];
if(Pb.Checked)
isPb=1;
else
isPb=0;
if(Imp.Checked)
import=1;
else
import=0;
UpdateAll(id,isPb,import);
activeList.EditItemIndex=-1;
LoadGrid();
}

private void UpdateAll(int id,int isPb,int import)
{
Db MyDb=new Db();
MyDb.NonQuery("UPDATE Activity SET auditing='"+isPb+"',auditingcategory='"+import+"' WHERE ID='"+id+"'");

}
...全文
6 点赞 收藏 26
写回复
26 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sndy77 2003-12-01
好了,谢谢大家了,接分
回复
sndy77 2003-12-01
哈,终天搞好了,
id=Convert.ToInt32(e.Item.Cells[0].Text);
CheckBox Pb=(CheckBox)e.Item.Cells[3].Controls[0];
CheckBox Imp=(CheckBox)e.Item.Cells[4].Controls[0];

就是这三行代码不对,全都有是索引的事,
可是我还是不明白,为什么Controls[0];不行,改成Controls[1];就好了呢,可每个<editItemTeplate>里面只有一个checkbox啊.
回复
crodling 2003-12-01
得,看的昏昏沉沉。要不贴出你全部代码看看吧
回复
sndy77 2003-12-01
终于知道错在哪了,
id=Convert.ToInt32(e.Item.Cells[0].Text);
CheckBox Pb=(CheckBox)e.Item.Cells[3].Controls[0];
CheckBox Imp=(CheckBox)e.Item.Cells[4].Controls[0];
这三行都不对,可应该怎么写呢?
回复
sndy77 2003-12-01
那,就显示这些了.
-------------------------------------------------------------
输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.FormatException: 输入字符串的格式不正确。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:


[FormatException: 输入字符串的格式不正确。]
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +0
Lx.Sinaqd.Active.Admin.update_Click(Object Sender, DataGridCommandEventArgs e) +71
System.Web.UI.WebControls.DataGrid.OnUpdateCommand(DataGridCommandEventArgs e) +109
System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e) +507
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e) +100
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +120
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +115
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +138
System.Web.UI.Page.ProcessRequestMain() +1277

--------------------------------------------------
回复
acewang 2003-12-01
晕,
就是在浏览器下打开时,报错后有一部分代码显示的部分
回复
sndy77 2003-12-01
用记事本编缉,不能单步调试,也不知道那一句出错.
回复
acewang 2003-12-01
你不贴出是哪行出的错,大家就等于猜谜
回复
acewang 2003-12-01
贴出你出错的行,就是你代码被标红的那行
回复
sndy77 2003-12-01
id=Convert.ToInt32(e.Item.Cells[0].Text);
这句也让我注掉了,直接让id=一个数了,可是还出现同样的问题.
回复
sndy77 2003-12-01
没有不正常的,只有
LoadGrid();
回复
crodling 2003-12-01
那么看看你的这句
id=Convert.ToInt32(e.Item.Cells[0].Text);
这里可能转换有问题
e.Item.Cells[0].Text
回复
bobjeey 2003-12-01
检查一下你的pageload函数内有什么不正常的代码。
回复
sndy77 2003-12-01
不对啊,我把这一句删了,还出现同样的错误.
MyDb.NonQuery("UPDATE Activity SET auditing='"+isPb+"',auditingcategory='"+import+"' WHERE ID='"+id+"'");
回复
sndy77 2003-12-01
没办法,只好试一下 killerwc(Elove^_^CS~B43) 的方法了.
回复
sndy77 2003-12-01
不行啊,我是用记事本编缉,不能单步调试,也不知道那一句出错.
回复
qiaoba 2003-12-01
这么简单的问题你设个断点一步步跟一下不就知道为什么了?
回复
sndy77 2003-12-01
为什么数据写库的时候不提示出错,更新就提示,非要有参数不行
回复
crodling 2003-12-01
把你这行代码打印出来看看
"UPDATE Activity SET auditing='"+isPb+"',auditingcategory='"+import+"' WHERE ID='"+id+"'"

或者你单步调试一下看哪句出错
回复
sndy77 2003-12-01
各位前辈快帮忙啊
回复
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2003-12-01 01:00
社区公告
暂无公告