ListView怎么删除数据库指定的某一行数据?
楼主用VB写了一个ListView,想用来操作Access数据库
比如选择ListView第三行,点击“删除”,就删除Access第三行。
但找了很久,都没有发现有这个命令。
网上都是delete from 数据库名 where 姓名 = 张三。
不适合我用。有没有下面的代码?
---------------------------------
Dim a
a = ListView1.SelectedItem.Index‘这条是取得鼠标所在的ListView的行数
delete  数据库名 第a行
----------------------------------------
新手,请大家指点。

解决方案 »

  1.   

    仅供参考:
    ListView 的说明:完整代码
    在 ListView 的说明 1 到 4 中讨论的代码,除了充填 TreeView 控件的过程,都在下面给出。要得到充填 TreeView 控件的代码,请参阅“TreeView 控件的说明:将 TreeView 绑定到 Biblio.mdb 数据库”。要得到本代码的工作示例,请参阅列在 Samples目录中的示例应用程序 DataTree.vbp。'普通声明
    Private mDbBiblio As Database '数据库变量。Private Sub Form_Load()
       '打开 Biblio.mdb,并将对象变量
       '设置为该数据库。
       Set mDbBiblio = DBEngine.Workspaces(0). _
       OpenDatabase("Biblio.mdb")   '充填 TreeView 控件的代码
       '在这里没有给出。
    End SubPrivate Sub tvwDB_NodeClick(ByVal Node As Node)
       '检查 Tag 是否是 "Publisher"。如果是,则
       '调用 MakeColumns 过程,然后调用
       ' GetTitles 函数。
       If Node.Tag = "Publisher" Then 
          MakeColumns
          GetTitles Val(Node.Key)
       End If
    End SubPrivate Sub MakeColumns()
       '清空 ColumnHeaders 集合。
       lvwDB.ColumnHeaders.Clear
       '添加四个 ColumnHeader。
       lvwDB.ColumnHeaders.Add , , "Title", 2000
       lvwDB.ColumnHeaders.Add , , "Author"
       lvwDB.ColumnHeaders.Add , , "Year", 350
       lvwDB.ColumnHeaders.Add , , "ISBN"
    End SubPrivate Sub GetTitles(PubID)
    '删除旧的书目。
    lvwDB.ListItems.Clear
    '声明 Recordset 类型的对象变量。
    Dim rsTitles As Recordset
    '对该记录,用仅查找具有相同 PubID 的书目的查询
    '创建一个记录集。
    '对该记录集中的每条记录,在
    ' ListView 控件中添加 ListItem 对象,
    '并用记录的 Title、 ISBN 和 Author 字段
    '设置新对象的属性。
    Set rsTitles = mDbBiblio.OpenRecordset _
    ("select * from Titles where PubID = " & PubID)Do Until rsTitles.EOF
    '添加 ListItem。
          Set mItem = lvwDB.ListItems.Add() 
          mItem.Text = rsTitles!TITLE 
          mItem.SmallIcon = "smlBook" 
          mItem.Icon = "book"   
          mItem.Key = rsTitles!ISBN
          ' 用函数得到作者并设置
          ' SubItems(1) 属性。
          mItem.SubItems(1) = GetAuthor(rsTitles!ISBN)
          If Not IsNull(rsTitles![Year Published]) Then
             mItem.SubItems(2) =  _
          rsTitles![Year Published]
          End If
          mItem.SubItems(3) = rsTitles!ISBN
          rsTitles.MoveNext
    Loop
    End SubPrivate Function GetAuthor(ISBN)
       '声明 DAO 对象变量。
       Dim rsTitleAuthor As Recordset
       Dim rsAuthors As Recordset    
       '将对象变量设置为记录集。
       Set rsTitleAuthor = mDbBiblio. _
       OpenRecordset("Title Author", dbOpenDynaset)
       Set rsAuthors = mDbBiblio. _
       OpenRecordset("Authors", dbOpenDynaset)
       '创建查询字符串。
       Dim strQuery As String
       strQuery = "ISBN = " & "'" & ISBN & "'"
       rsTitleAuthor.FindFirst strQuery
       '如果没有作者,则返回 "n/a"。
       '否则,返回作者的姓名。   If rsTitleAuthor.NoMatch Then
          GetAuthor = "n/a"
          Exit Function
       Else
          '假定找到了正确的记录集。
          '然后用 Au_ID 字段值重新设置查询字符串,
          '并搜索“作者”表。
          strQuery = "Au_ID = " & rsTitleAuthor!AU_ID
          rsAuthors.FindFirst strQuery
          '返回 Author 字段中的作者姓名。
          GetAuthor = rsAuthors!Author
       End If
    End Function
      

  2.   

    1、引用ado 控件
    2、连接数据库
    3、获取所选行的内容执行删除命令你这个最好是通过序号来删除,获取字段的方法Listview1.ListItems.Item(1).SubItems(1)  这个就表示第1行第1列的数值