无法更新 DataGrid中数据?指定的转换无效,

icatcher 2002-10-30 12:14:46
指定的转换无效。

private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{

sqlConnection1.Open();
sqlCommand1.Parameters["@实验号"].Value=DataGrid1.DataKeys[(int)e.Item.ItemIndex];
TextBox tb1;
TextBox tb2;
出错行: tb2=(TextBox)e.Item.Cells[2].Controls[0];
tb1=(TextBox)e.Item.Cells[1].Controls[0];
sqlCommand1.Parameters["@分数"].Value=tb2.Text;
sqlCommand1.Parameters["@实验名称"].Value=tb2.Text;
//((TextBox)e.Item.Cells[1].Controls[0]).Text;
sqlCommand1.ExecuteNonQuery();
DataGrid1.EditItemIndex=-1;
sqlDataAdapter2.SelectCommand.Parameters["@教师号"].Value=Session["teacher"];
sqlDataAdapter2.Fill(teacher_manage_ds1,"symc");
DataGrid1.DataBind();
sqlConnection1.Close();

}


怎么样才能避免这种情况呢
...全文
90 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
icatcher 2002-10-30
  • 打赏
  • 举报
回复
多谢了,
原来还是Cell[i]
的值被设错了,
已经解决问题,
发分了
chnking 2002-10-30
  • 打赏
  • 举报
回复
这样试试:
tb2=(TextBox)(e.Item.Cells[2].Controls[0]);
icyer 2002-10-30
  • 打赏
  • 举报
回复
那就这样检测一下:
Response.Write(e.Item.Cells[2].Controls[0].GetType().ToString());
如果输出System.Web.UI.WebControls.TextBox就没错,否则就值得考虑了。
icatcher 2002-10-30
  • 打赏
  • 举报
回复
to icyer()
如果改成Controls[1],出现如下错误
指定的参数已超出有效值的范围。参数名:index
icatcher 2002-10-30
  • 打赏
  • 举报
回复
好,
能说详细点吗
icyer 2002-10-30
  • 打赏
  • 举报
回复
这样试试:
tb2=(TextBox)e.Item.Cells[2].Controls[1];
或者用FindControl
xzygod 2002-10-30
  • 打赏
  • 举报
回复
页眉也参与事件绑定,index是-1,判断跳过。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧