VB.Net 如何获取Access数据库中的表名称

VB.Net 如何获取Access数据库中的表名称,第1张

呵呵,刚刚做这个,就借花献佛了

/// <summary>

/// 获得当前Access数据库的表

/// </summary>

/// <param name="Source"></param>

/// <returns></returns>

public ArrayList DataScoreTableName(string Source)

{

ArrayList TableName = new ArrayList();

string ConnectionString = "Provider=MicrosoftJetOLEDB40;Data Source=" + Source;

OleDbConnection conn = new OleDbConnection(ConnectionString);

connOpen();

DataTable schemaTable = connGetOleDbSchemaTable(OleDbSchemaGuidTables,new object[] { null, null, null, "TABLE"});

foreach (DataRow dr in schemaTableRows)

{

TableNameAdd(dr["TABLE_NAME"]);

}

connClose();

return TableName;

}

给LZ一个代码可以搜索ACCESS数据库内所有表名的代码。

Option Explicit

    Dim TableSet As ADODBRecordset

    Dim Gconnection As ADODBConnection

    Dim lianjie As String

Sub getTableName()

    lianjie = "Provider=MicrosoftJetOLEDB40;Data Source=J:\LDGZ\南汇40M^2New\ldgz30_wd20100205N19200\Data\wdoldmdb;Persist Security Info=False"

    Set Gconnection = New ADODBConnection

    GconnectionOpen lianjie

    Set TableSet = GconnectionOpenSchema(adSchemaTables, Array(Empty, Empty, Empty, Empty))

    Do Until TableSetEOF

         List1AddItem TableSet!table_name

         TableSetMoveNext

    Loop

End Sub

Private Sub Form_Load()

    getTableName

End Sub

LZ可以将lianjie变量以你自己的连接字符串替代。我这里是用ACCESS7的数据库。

再给LZ提供一个链接

>

是关于获取“

VB 读取ACCESS数据库中所有表名及指定表的字段名

“的Word文件。

Public conn As New ADODBConnection

Public Rs As New ADODBRecordset

Public db As String

Private sSQL As String

Private Sub Form1_Load(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles MyBaseLoad

db = "C:\Documents and Settings\ws01\デスクトップ\新しいフォルダ\WindowsApplication1\db1mdb"

db = "Provider=MicrosoftJetOLEDB40;Persist Security Info=False;Data Source=" & db

connCursorLocation = ADODBCursorLocationEnumadUseClient

connOpen(db)

Rs = connOpenSchema()

End Sub

我有个从网上找到的样例程序,是列出一个数据库里面的表名,基本就是你要的,但是因为是刚学,有些地方也不太明白MsAccessclosecurrentdatabaseMsAccessopencurrentdatabase (Text1Text)Dim rpt As ObjectFor Each rpt In MsAccesscurrentprojectallreportsCombo1AddItem (rptName)Next rpt

rstOpen Sql, cnConnectionString

我的数据库语言不是很好,但看了你的代码,也觉得很乱,你的代码至少有好几种方法可以修改,上面是最简单的一种,实际上你的数据库在acappOpenCurrentDatabase的时候已经打开了,接下来根本就不需要再次使用cn进行连接。

所以第二种改法是:

acAppOpenCurrentDatabase (dbPath)

'Dim cn As ADODBConnection '不需要再次连接

'Set cn = acAppCurrentProjectConnection '不需要再次连接

Dim rst As ADODBRecordset

Set rst = New ADODBRecordset

Dim Sql As String

Sql = "Select From 0012X32"

rstOpen Sql, acAppADOConnectString '我只需要在这里调用连接的数据就可以了,而这个连接数据存储在acAppADOConnectString里面。

rstMoveFirst

acAppOpenCurrentDatabase (dbPath)

'Dim cn As ADODBConnection '不需要再次连接

'Set cn = acAppCurrentProjectConnection '不需要再次连接

Dim rst As ADODBRecordset

Set rst = New ADODBRecordset

Dim Sql As String

Sql = "Select From 0012X32"

rstOpen Sql, acAppADOConnectString '我只需要在这里调用连接的数据就可以了,而这个连接数据存储在acAppADOConnectString里面。

rstMoveFirst

下面是RecordSet的OPEN的用法:

Open 方法 (ADO Recordset)

打开游标。

语法

recordsetOpen Source, ActiveConnection, CursorType, LockType, Options

参数

Source 可选。Variant,计算有效的 Command 对象、SQL 语句、表名、存储过程调用、URL 或包含持久存储 Recordset 的文件名或 Stream 对象。

ActiveConnection 可选。Variant,计算有效的 Connection 对象变量名,或包含 ConnectionString 参数的 String。

CursorType 可选。CursorTypeEnum 值,确定在打开 Recordset 时提供者应使用的游标类型。默认值为 adOpenForwardOnly。

LockType 可选。LockTypeEnum 值,确定在打开 Recordset 时提供者应使用的锁定(并发)类型。默认值为 adLockReadOnly。

Options 可选。Long 值,指示提供者计算 Source 参数的方式(如果该参数表示除 Command 对象之外的某些内容),或者指示 Recordset 应该从以前保存过的文件中恢复。可以是一个或多个 CommandTypeEnum 或 ExecuteOptionEnum 值,这些值可以用位 AND *** 作符组合。

注意 如果从包含持久 Recordset 的 Stream 中打开 Recordset,那么使用 adAsyncFetchNonBlocking 的 ExecuteOptionEnum 值将不起作用;提取 *** 作将同步进行并发生阻塞。adExecuteNoRecords 或 adExecuteStream 的 ExecuteOpenEnum 值不应与 Open 一起使用。

Open 方法 (ADO Recordset)

打开游标。

语法

recordsetOpen Source, ActiveConnection, CursorType, LockType, Options

参数

Source 可选。Variant,计算有效的 Command 对象、SQL 语句、表名、存储过程调用、URL 或包含持久存储 Recordset 的文件名或 Stream 对象。

ActiveConnection 可选。Variant,计算有效的 Connection 对象变量名,或包含 ConnectionString 参数的 String。

CursorType 可选。CursorTypeEnum 值,确定在打开 Recordset 时提供者应使用的游标类型。默认值为 adOpenForwardOnly。

LockType 可选。LockTypeEnum 值,确定在打开 Recordset 时提供者应使用的锁定(并发)类型。默认值为 adLockReadOnly。

Options 可选。Long 值,指示提供者计算 Source 参数的方式(如果该参数表示除 Command 对象之外的某些内容),或者指示 Recordset 应该从以前保存过的文件中恢复。可以是一个或多个 CommandTypeEnum 或 ExecuteOptionEnum 值,这些值可以用位 AND *** 作符组合。

access数据库中所有的表名都存在一个叫做MSysObjects的表中了,所以在这个表中查询就可以了。以下是代码:

Dim L_dadap As New OleDbOleDbDataAdapter("select from MSysObjects ", L_conn)

Dim L_dtable As New DataTable

L_dadapFill(L_dtable)

Dim TabName(L_dtableRowsCount - 1)

For i = 0 To L_dtableRowsCount - 1

TabName(i) = L_dtableRows(i)Item("name")

Next

以上就是关于VB.Net 如何获取Access数据库中的表名称全部的内容,包括:VB.Net 如何获取Access数据库中的表名称、vb如何获取access数据库的所有表和字段名、用VB.NET连接ACCESS取出ACCESS中的所有表名和字段名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9729906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存