简体   繁体   English

如何在VB.NET中使用SQL从特定数据库中检索Ms访问表名称

[英]How to retrieve Ms access tables names from specific database using SQL in VB.NET

Whenever I want to select tables names from specific Ms Access 2007 database, I use this SQL request: 每当我想从特定的Ms Access 2007数据库中选择表名称时,我都会使用以下SQL请求:

SELECT name from msysobjects WHERE type=1 and flags=0

My VB.NET source code: 我的VB.NET源代码:

 Connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + _
                     "Data Source=" & Text1.Text
        Connection.Open()
        ' sql = "SELECT MSysObjects.Name AS table_name FROM MSysObjects"
        sql = "SELECT name from msysobjects WHERE Type = 1 And flags = 0"
        Dim commande As OleDbCommand
        commande = New OleDbCommand(sql, Connection)
        Dim dataReader As OleDbDataReader

        Try
            dataReader = commande.ExecuteReader()
            While (dataReader.Read())
                tableNameBox.Text = dataReader.GetString(0)
            End While

        Catch ex As Exception
            MsgBox("Problème de connection " & ex.Message())

        End Try

I always get this exception: 我总是得到这个异常:

no read permission on 'msysobjects' 对“ msysobjects”没有读取权限

My purpose is to show tables names in comboBox Thank you 我的目的是在comboBox中显示表名称谢谢

You don't need to access the system tables directly. 您不需要直接访问系统表。 You can use the GetSchema method to retrieve that information. 您可以使用GetSchema方法检索该信息。 For example, to retrieve a list of the "regular" (non-system) tables you can use this: 例如,要检索“常规”(非系统)表的列表,可以使用以下命令:

Using conn As New OleDbConnection(myConnectionString)
    conn.Open()
    Dim dt As DataTable = conn.GetSchema("TABLES", {Nothing, Nothing, Nothing, "TABLE"})
    For Each dr As DataRow In dt.Rows
        Console.WriteLine(dr("TABLE_NAME"))
    Next
End Using

For more information, see 有关更多信息,请参见

OleDbConnection.GetSchema Method (String, String()) OleDbConnection.GetSchema方法(String,String())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用VB.Net/C#将图像从SQL数据库导出到特定文件夹? - How to export Images from SQL database to a specific folder using VB.Net/C#? 如何从SQL Server数据库中检索图像字段civilimage1,civilimage2,以在带有vb.net或c#的ASP.NET中使用图像控件进行显示? - How to retrieve image fields civilimage1,civilimage2 from SQL Server database to show using image control in ASP.NET with vb.net or c#? 在asp.net(vb.net/c#)中从ms sql数据库填充数据的更好方法 - Better way for populating data from ms sql database in asp.net (vb.net/c#) VB.NET具有MS Access数据库作为后端如何通过将数据库文件放入AppData文件夹进行部署? - VB.NET with MS access Database as backend how to deploy by putting Database file to AppData Folder? 仅使用 2 个文本框使用 VB.net 搜索数据库 MS Access - Searching database MS Access with VB.net with 2 textbox only 从MS Access OLE对象列创建图像文件(使用C#或VB.NET) - Create Image file (using C# or VB.NET) from MS Access OLE Object column 我们如何在不使用 DAO 和 JRO 的情况下在 VB.NET 或 C#.NET 中压缩访问数据库 - How can we compact a access database in VB.NET or C#.NET without using DAO and JRO 从访问数据库到datagridview的数据获取错误Vb.Net - error in get data from access database to datagridview Vb.Net 如何使用ADO从MS Access数据库中提取表名称 - How do I extract table names from MS Access database using ADO 如何使用C#从MS Access数据库的两个以上表中检索数据 - How to retrieve data from more then two table of MS Access database using c#
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM