注册 登录
编程论坛 VB.NET论坛

用vb.net删除Access中的一个表的方法

yu_mzh 发布于 2016-05-14 21:26, 5032 次点击
我想在Access中查找一个表“测试表”,如果该表存在,就将该表删除掉。该如何用vb2013写?谢谢了
7 回复
#2
不说也罢2016-05-15 09:07
使用SQL命令删除表
DROP TABLE table_name
#3
yu_mzh2016-05-17 13:58
Imports
Imports ADOX
Imports System.Data.SqlClient
Module Module1
   
    Public Sub AddNewAccess()
        Dim cat As Catalog = New Catalog()
        Dim apppath As String = Application.StartupPath
        apppath = apppath & "\源文件\"
        Dim cn As ADODB.Connection = New ADODB.Connection  '定义连接
        Dim objTable As ADOX.Table = New ADOX.Table         '定义新表
           cn.Open("Provider=Microsoft.ace.OLEDB.12.0;Data Source=" & "源文件\" & "NewMDB.accdb") '链接到数据库
        Dim rs As New ADODB.Recordset
        rs = cn.Execute("测试项目表")
        If Err.Number = 0 Then
            If MsgBox("此表已经存在,是否删除?", vbYesNo , "提示") = vbYes Then
                 cn.Execute("DROP TABLE 测试项目表")   '---------此处不行
            Else

            End If
            cat = Nothing
            cn.Close()
            cn = Nothing
        End If
      
    End Sub
End Module

这样写对吗??我在运行时不能删除掉那个表。
#4
不说也罢2016-05-17 14:54
不知楼主从哪找来的例子。代码显示编程思路很乱。
代码表明楼主要操作的数据源是ACCESS数据库,而非SQLSERVER数据库,不需引用 System.Data.SqlClient命名空间,而应当引用 System.Data.OleDB命名空间和ADODB命名空间。
删除一个表前,先要关闭它,然后再删除。
#5
yu_mzh2016-05-17 15:33
我是刚学的,好多都还不会。我试试。
#6
yu_mzh2016-05-17 15:34
如何应用不同的引用,不知道在哪里能学到。
#7
不说也罢2016-05-18 13:50
.NET中已经抛弃ADODB类了,请使用oledb\sqlclient类了

另外,删除ACCESS中的表,相对于删除SQLSERVER中的表来讲,要稍感觉费事一些。具体你可以百度一下。

如果你一定要用ACCESS数据库,这里写个例子,你参考下:
记得要引用Imports System.Data.OleDb

程序代码:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim cn As New OleDbConnection
        cn.ConnectionString = "Provider=Microsoft.ace.oledb.12.0;Data Source=你的数据库路径+文件名"
        Try
            '如果不出错,就删除表
            cn.Open()
            Dim cmd As OleDbCommand
            cmd = New OleDbCommand("测试项目表", cn)

             = CommandType.TableDirect
            Dim myread As OleDbDataReader = cmd.ExecuteReader()
            MsgBox("数据库中已经有这个表,即将删除。")
            cmd.Dispose() '释放相关资源
            myread.Close() '一定要关闭已打开的对象
             = CommandType.Text
            cmd = New OleDbCommand("Drop TABLE 测试项目表", cn)
            myread = cmd.ExecuteReader()
        Catch ex As Exception
            '如果出错,说明没有这个表
            MsgBox(Err.Number & Err.Description)'这里弹出对话框告诉你什么原因出错
            MsgBox("数据库中可能没有这个表")
            '这里可以创建表
        End Try
        If cn.State = ConnectionState.Open Then cn.Close()
End Sub

#8
yu_mzh2016-05-19 14:38
回复 7楼 不说也罢
谢谢了
1