请教!!!如何实现 DataGrid中 按钮列的删除!!!

zhengqian 2003-08-23 05:58:29
Public strConnection, strselect As String
Public myAdapter As SqlDataAdapter
Public myConnection As SqlConnection

Private Sub myDataGrid_DeleteCommand1(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles

myDataGrid.DeleteCommand

Dim articleId As Integer
articleId = myDataGrid.DataKeys(e.Item.ItemIndex) '获得主键值
Dim myConnectionstring As String = "server=localhost;uid=sa;pwd=;Database=softlab "
Dim myConnection As New SqlConnection(myConnectionstring)
Dim deletestr As String = "delete from article where article_id=' " & articleId & " '"
Dim myCommand As SqlCommand

myCommand = New SqlCommand(deletestr, myConnection)
myConnection.Open()
myCommand.ExecuteNonQuery()
myConnection.Close()
If myDataGrid.CurrentPageIndex < 0 Then
Response.Redirect("/")
Else
myDataGrid_Bind() '最后一页被删除完后出现错误,有待解决
End If

End Sub

提示错误:
索引超出范围。必须为非负值并小于集合大小。参数名: index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名: index

源错误:


行 178:
行 179: Dim userid As Integer
行 180: userid = DataGrid1.DataKeys(e.Item.ItemIndex) '获得主键值
行 181: Dim myconnectionstring As String = "server=localhost;uid=sa;pwd=;database=softlab"
行 182: Dim strconnection As SqlConnection = New SqlConnection(myconnectionstring)

请教指点!!
...全文
64 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fei30wang 2003-08-24
  • 打赏
  • 举报
回复
我想有两个原因;不知道你加了没有

1.你的DataGrid 的DataKeyField设置主键ID没有
2.你绑定到DataGrid的Table加主键了没有;

DataColumn[] dcPk = {user_DS.Tables[tableName].Columns["ID"]}; //对一个Data
user_DS.Tables[tableName].PrimaryKey = dcPk;
crashloopbackoff 2003-08-24
  • 打赏
  • 举报
回复
把myDataGrid_DeleteCommand1事件里加上:

if e.item.itemindex>=0 then

....你的代码

end if
ruanyuping 2003-08-23
  • 打赏
  • 举报
回复
up
panyee 2003-08-23
  • 打赏
  • 举报
回复
到这去把c#转成vb.net的
http://www.aspalliance.com/aldotnet/examples/translate.aspx
zhengqian 2003-08-23
  • 打赏
  • 举报
回复
有没有人知道呀????
急呀!!!
zhengqian 2003-08-23
  • 打赏
  • 举报
回复
用asp.net--vb这个该怎么编写?
chenee543216 2003-08-23
  • 打赏
  • 举报
回复
判断当前page是不是只有一条记录!!!
如果是,
DataGrid1.CurrentPageIndex=0;
( or DataGrid1.CurrentPageIndex=DataGrid1.CurrentPageIndex-1;;
chenee543216 2003-08-23
  • 打赏
  • 举报
回复
void MyDataGrid_Delete(Object sender, DataGridCommandEventArgs e)
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// //dowith the Bug of Del&Page
if((CartView.Count%MyDataGrid.PageSize==1)&&(MyDataGrid.CurrentPageIndex!=0))
MyDataGrid.CurrentPageIndex--;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

DataRow dr;
String ID = e.Item.Cells[2].Text;
//
DEL_From_Grid(ID);
//
CartView.RowFilter = "ID='" + ID + "'";
if (CartView.Count > 0)
CartView.Delete(0);
CartView.RowFilter = "";

BindGrid();
}
zhengqian 2003-08-23
  • 打赏
  • 举报
回复

userid = DataGrid1.DataKeys(e.Item.ItemIndex) '获得主键值
行提示错误!
zhengqian 2003-08-23
  • 打赏
  • 举报
回复
索引超出范围。必须为非负值并小于集合大小。参数名: index
是什么意思???

62,041

社区成员

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

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

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

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