gridview问题,查询自己写,显示在gridview里,还要编辑和删除.

skyboyzb 2007-02-12 09:50:52
我的思路是,查询自己写,然后显示在gridview里,然后利用gridview里的事件对查询后的结果进行编辑和删除,现在贴上代码,大家帮看看有什么问题.
查询:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myConnectionString As String
myConnectionString = "server=localhost;database=****;uid=****;pwd=123;"
Dim myConnection As New SqlConnection(myConnectionString)
Dim mySelect As String = "SELECT * FROM Repository WHERE Name LIKE '%" + TextBox3.Text + "%' AND Operator LIKE '%" + DropDownList1.Text + "%' AND Type LIKE '%" + DropDownList2.Text + "%' AND Server LIKE '%" + DropDownList3.Text + "%' AND Detail LIKE '%" + TextBox4.Text + "%' AND Keyword LIKE '%" + TextBox6.Text + "%'"
Dim myCommand As New SqlCommand(mySelect)
Dim adapter As SqlDataAdapter = New SqlDataAdapter(mySelect, myConnection)
myCommand.Connection = myConnection
myConnection.Open()
Dim ds As New DataSet
adapter.Fill(ds)
GridView1.DataSource = ds
GridView1.DataBind()
myCommand.Connection.Close()
End Sub
删除:
Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting
Dim myConnectionString As String
myConnectionString = "server=localhost;database=****;uid=****;pwd=123;"
Dim myConnection As New SqlConnection(myConnectionString)
Dim myDelete As String
myDelete = "DELETE FROM Repository WHERE RepositoryID ='GridView1.DataKeyNames[e.RowIndex][0])'"
Dim myCommand As New SqlCommand(myDelete)
myCommand.Connection = myConnection
myConnection.Open()
myCommand.ExecuteNonQuery()
myConnection.Close()
End Sub
运行结果:
运行无异常,但是结果没有删除, myDelete = "DELETE FROM Repository WHERE RepositoryID ='GridView1.DataKeyNames[e.RowIndex][0])'"主要是这个语句,大家帮我看看有没有问题.我是在查询的结果里面做删除.
...全文
232 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyboyzb 2007-02-12
  • 打赏
  • 举报
回复
这样的写法,查询出来两个结果,然后先删一个没效果,再点另外一个删除就出现“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

索引超出了数组界限。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.IndexOutOfRangeException: 索引超出了数组界限。的错误.
skyboyzb 2007-02-12
  • 打赏
  • 举报
回复
我现在是改成:myDelete = "DELETE FROM Repository WHERE RepositoryID ='" & GridView1.DataKeyNames(e.RowIndex)(0) & "'"
但是还没有删掉么,还出错了.
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

索引超出了数组界限。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.IndexOutOfRangeException: 索引超出了数组界限。
mzhao 2007-02-12
  • 打赏
  • 举报
回复
myDelete = "DELETE FROM Repository WHERE RepositoryID ='GridView1.DataKeyNames[e.RowIndex][0])'"
????难道RepositoryID是“GridView1.DataKeyNames[e.RowIndex][0])”

应该是这样吧
myDelete = "DELETE FROM Repository WHERE RepositoryID ='" & GridView1.DataKeyNames(e.RowIndex)(0) & "'"
iexapl 2007-02-12
  • 打赏
  • 举报
回复
DELETE 没有from吧
skyboyzb 2007-02-12
  • 打赏
  • 举报
回复
自己搞好了,myDelete = "DELETE FROM Repository WHERE RepositoryID ='" & GridView1.DataKeys(e.RowIndex)(0) & "'"
mzhao(学习学习)的思路是对的不过DataKeyNames要改成DataKeys.可以了
谢谢大家,结帖给分.

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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