帮帮忙!DATAGRID更新时出现:指定的参数已超出有效值的范围。参数名: index 怎么办啊

snowshaken 2008-07-17 09:56:17
Private Sub ResourceInList_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles ResourceInList.UpdateCommand
Dim shebeibianhao, shebeimingcheng, shebeiguige, lingyongren, lingyongriqi, lingyongbumen, bdbh As TextBox


bdbh = e.Item.Cells(1).Controls(1)

shebeibianhao = e.Item.Cells(1).Controls(0)
shebeimingcheng = e.Item.Cells(2).Controls(0)
shebeiguige = e.Item.Cells(3).Controls(0)
lingyongbumen = e.Item.Cells(4).Controls(0)
lingyongren = e.Item.Cells(5).Controls(0)
lingyongriqi = e.Item.Cells(6).Controls(0)


Dim myConn As New SqlClient.SqlConnection
Dim myCmd As New SqlClient.SqlCommand
Dim myDataAdapter As New SqlClient.SqlDataAdapter
Dim connstr As String
connstr = ConfigurationSettings.AppSettings("dsn")
myConn.ConnectionString = connstr
myConn.Open()

myCmd.CommandText = "update tblshebeilingyong set shebeibianhao=@shebeibianhao,shebeimingcheng=@shebeimingcheng,shebeiguige=@shebeiguige,lingyongbumen=@lingyongbumen,lingyongyuangong=@lingyongren,lingyongriqi=@lingyongriq where bdbh=@bdbh"



myCmd.Parameters.Clear()
myCmd.Parameters.Add(New SqlClient.SqlParameter("@shebeibianhao", SqlDbType.VarChar, 50))
myCmd.Parameters.Add(New SqlClient.SqlParameter("@shebeimingcheng", SqlDbType.VarChar, 50))
myCmd.Parameters.Add(New SqlClient.SqlParameter("@shebeiguige", SqlDbType.VarChar, 200))
myCmd.Parameters.Add(New SqlClient.SqlParameter("@shebeizhuangtai", SqlDbType.VarChar, 50))
myCmd.Parameters.Add(New SqlClient.SqlParameter("@lingyongriqi", SqlDbType.SmallDateTime, 4))
myCmd.Parameters.Add(New SqlClient.SqlParameter("@lingyongbumen", SqlDbType.VarChar, 50))
myCmd.Parameters.Add(New SqlClient.SqlParameter("@lingyongren", SqlDbType.VarChar, 50))
myCmd.Parameters.Add(New SqlClient.SqlParameter("@bdbh", SqlDbType.VarChar, 50))


myDataAdapter.SelectCommand.Parameters("@shebeibianhao").Value = Trim(shebeibianhao.text)
myDataAdapter.SelectCommand.Parameters("@shebeimingcheng").Value = Trim(shebeimingcheng.text)
myDataAdapter.SelectCommand.Parameters("@shebeiguige").Value = Trim(shebeiguige.text)
myDataAdapter.SelectCommand.Parameters("@lingyongriqi").Value = Trim(lingyongriqi.text)
myDataAdapter.SelectCommand.Parameters("@lingyongbumen").Value = Trim(lingyongbumen.Text)
myDataAdapter.SelectCommand.Parameters("@lingyongren").Value = Trim(lingyongyuangong.Text)
myDataAdapter.SelectCommand.Parameters("@bdbh").Value = ResourceInList.DataKeys.Item(e.Item.ItemIndex)

myConn.Open()
myCmd.ExecuteNonQuery()
myConn.Close()
ResourceInList.EditItemIndex = -1
BindResourceInData()



End Sub
--------------------------------------------------------------------------------------------------------


指定的参数已超出有效值的范围。参数名: index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。参数名: index

源错误:


行 194:
行 195:
行 196: bdbh = e.Item.Cells(1).Controls(0)
行 197:
行 198: shebeibianhao = e.Item.Cells(1).Controls(0)


源文件: D:\工作\系统开发\Project\Office\shebeilingyong.aspx.vb 行: 196

堆栈跟踪:


[ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。
参数名: index]
System.Web.UI.ControlCollection.get_Item(Int32 index) +58
_3JMIS.shebeilingyong.ResourceInList_UpdateCommand(Object source, DataGridCommandEventArgs e) in D:\工作\系统开发\3JMIS\Project\Office\shebeilingyong.aspx.vb:196
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




--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573
...全文
461 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yagebu1983 2008-07-17
  • 打赏
  • 举报
回复
调试看看!!
snowshaken 2008-07-17
  • 打赏
  • 举报
回复
up
tengjian1981 2008-07-17
  • 打赏
  • 举报
回复
直接用String,不需要用控件,e.Item.Cells(1).Text
snowshaken 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 greystar 的回复:]
.Cells(1).Controls.Count==?
有没有值呢.看过了没有啊.
[/Quote]

看了,为什么会是0啊

<Columns>
<asp:BoundColumn Headertext="领用单号" DataField="bdbh" ReadOnly="True" />
<asp:BoundColumn Headertext="设备编号" DataField="shebeibianhao" ReadOnly="True" />
<asp:BoundColumn Headertext="设备名称" DataField="shebeimingcheng" ReadOnly="True" />
<asp:BoundColumn Headertext="设备规格" DataField="shebeiguige" ReadOnly="True" />
<asp:BoundColumn Headertext="领用部门" DataField="lingyongbumen" ReadOnly="True" />
<asp:BoundColumn Headertext="领用人" DataField="lingyongyuangong" ReadOnly="True" />
<asp:BoundColumn Headertext="领用日期" DataField="lingyongriqi" ReadOnly="True" />
<asp:BoundColumn Headertext="录入日期" DataField="dengluriqi" ReadOnly="True" />
<asp:EditCommandColumn UpdateText="更新" CancelText="取消" EditText="编辑" HeaderText="操作" />
</Columns>
snowshaken 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 greystar 的回复:]
.Cells(1).Controls.Count==?
有没有值呢.看过了没有啊.
[/Quote]

怎么看啊
greystar 2008-07-17
  • 打赏
  • 举报
回复
.Cells(1).Controls.Count==?
有没有值呢.看过了没有啊.

62,243

社区成员

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

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

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

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