Asp.net 是否手动从gridview绑定中删除行?
我有一个gridview,它绑定到一个允许下载文件的表。该表包括:Asp.net 是否手动从gridview绑定中删除行?,asp.net,sql,vb.net,gridview,Asp.net,Sql,Vb.net,Gridview,我有一个gridview,它绑定到一个允许下载文件的表。该表包括: tableid为int 文件名为字符串 文件路径为字符串 删除(在gridview中添加列) 此删除不是自动的,而是编码的。我希望用户单击delete,选定的行将被删除。这么简单,但我似乎无法获取要删除的行的ID。这就是我所做的: Try 'Get the Image_Id from the DataKeyNames Dim imgId As Integer = Convert.ToInt
- tableid为int
- 文件名为字符串
- 文件路径为字符串
- 删除(在gridview中添加列)
Try
'Get the Image_Id from the DataKeyNames
Dim imgId As Integer = Convert.ToInt32(gvDetails.DataKeys(e.RowIndex).Value)
Dim cmd As New SqlCommand("delete from FilesTable where id=@id", con)
cmd.Parameters.AddWithValue("@id", imgId)
cmd.CommandType = CommandType.Text
con.Open()
cmd.ExecuteNonQuery()
Catch ex As Exception
ScriptManager.RegisterStartupScript(Me, Me.[GetType](), "Message", "alert('Error occured : " & ex.Message.ToString() & "');", True)
End Try
但我一直得到一个错误,字符串输出无法转换为整数:
发生错误:输入字符串的格式不正确
请帮忙
以下是栅格视图的绑定方式:
Private Sub BindGridviewData()
Try
con.Open()
Dim cmd As New SqlCommand("select * from FilesTable", con)
Dim da As New SqlDataAdapter(cmd)
Dim ds As New DataSet()
da.Fill(ds)
con.Close()
gvDetails.DataSource = ds
gvDetails.DataBind()
Catch ex As Exception
Response.Write(ex.Message)
End Try
End Sub
我花了很长时间才找到答案,这是一个简单的问题: 而不是: Dim imgId As Integer=Convert.ToInt32(gvDetails.DataKeys(e.RowIndex).Value) 我把它改成:
Dim imgId As Integer=Int32.Parse(gvDetails.Rows(e.RowIndex).Cells(0).Text)您是否尝试过调试并查看
gvDetails.DataKeys(e.RowIndex).value的值是多少?我希望它不是可以转换成整数的东西。如何绑定网格视图?私有子BindGridviewData()尝试将con.Open()Dim cmd作为新的SqlCommand(“select*from FilesTable”,con)Dim da作为新的SqlDataAdapter(cmd)Dim ds作为新的DataSet()da.Fill(ds)con.Close()gvDetails.DataSource=ds gvDetails.DataBind()捕获ex作为异常响应。Write(ex.Message)End Try End SubYes我做了,值为=0,它不应该为该值。表FilesTable
是否有主键?我目前无法测试,但我怀疑DataKeys不会自动设置,除非绑定到它的表具有主键?您可能需要在调用Databind()
Yes之前设置它的被调用id,正如您在上面的代码中所看到的!!