Private Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand
Dim strid, strsql As Integer
strid = DataGrid1.DataKeys.Item(e.Item.ItemIndex)
strsql = "delete from enews1 where id='" + strid + "'"
Dim sqlcon As New SqlConnection("SERVER=vabdna;uid=sa;pwd=yy;DATABASE=egov")
sqlcon.Open()
Dim sqlcommand As New SqlCommand
sqlcommand.Connection = sqlcon
sqlcommand.CommandText = strsql
sqlcommand.ExecuteNonQuery()
sqlcon.Close()
sqlcon = Nothing
sqlcommand = Nothing
DataGrid1.EditItemIndex = -1
BindToDataGrid()
End Sub以上我写的程序段代码,用来实现删除数据库里的数据功能,但是当我点击“删除”按钮是,会报错如下:
异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名: index不知何故,请高手们指点!!!谢!
Dim strid, strsql As Integer
strid = DataGrid1.DataKeys.Item(e.Item.ItemIndex)
strsql = "delete from enews1 where id='" + strid + "'"
Dim sqlcon As New SqlConnection("SERVER=vabdna;uid=sa;pwd=yy;DATABASE=egov")
sqlcon.Open()
Dim sqlcommand As New SqlCommand
sqlcommand.Connection = sqlcon
sqlcommand.CommandText = strsql
sqlcommand.ExecuteNonQuery()
sqlcon.Close()
sqlcon = Nothing
sqlcommand = Nothing
DataGrid1.EditItemIndex = -1
BindToDataGrid()
End Sub以上我写的程序段代码,用来实现删除数据库里的数据功能,但是当我点击“删除”按钮是,会报错如下:
异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名: index不知何故,请高手们指点!!!谢!
解决方案 »
- 急急!!如何对DataSet.Table[0]里面进行按某一列排序后取出表0中前5行的数据!!
- 求上传图片至数据库保存,并在客户端读取数据显示的例子?50分求解,解决结分,谢谢!
- 上一条记录 下一条记录问题??
- 请用过Haokoo.net(c#) 全站程序的大侠进来看看!
- 帮忙啊 !!
- 自动生成button如何添加到div中 在线 help
- 北京寻asp.net开发人员,可兼职(需在北京)
- 请问为什么我的visual studio.net2003没有Microsoft Excel 10.0 Objiect Library
- 欢迎大家谈一些.net的开发经验
- 下边的代码取得的参数值为什么会少一个汉字呢?
- datagrid中如何获得动态生成的控件的值?
- 请高手帮帮忙!!谢谢!新手问题!!!
然后
strsql = "delete from enews1 where id='" + strid + "'";
数据库中的id是int的还是varchar的,如果是int就应该是这样写
strsql = "delete from enews1 where id="+strid;
strid = DataGrid1.DataKeys.Item(e.Item.ItemIndex)改成strid = Int32.Parse(DataGrid1.DataKeys.Item(e.Item.ItemIndex).ToString());我这是C#版的语言,不知道怎么改成你VB.NET版的,意思你应该可以明白,改改看
各位高手的修改方案我都试了,可是还是不行。报错为:
异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名: index总是说 strid = DataGrid1.DataKeys.Item(e.Item.ItemIndex)这一句有错。再次请教!!!!!!!
这个思路有些问题?建议你逐语句调试,看看strid获取的什么数据?
然后自然知道是什么错!
---------------------------
取值好像不是这样取吧.应是
strid = Ctype(DataGrid1.DataKeys(e.Item.ItemIndex),string)
另外,要取键值,你就必须设置主键,设置方法,在datagrid绑定前
me.datagrid1.DataKeyField = "主键字段名"
me.datagrid1.DataBind()