〔问题〕如何枚举数据库中的表名?

sinzy 2002-06-06 08:43:09
例如,我选择打开一个数据库(目前是Access MDB文件),事先并不知道其含有的表名,我希望能列出表名,以便建立DataAdapter(因为它需要一个SQL语句初始化),但是一直不得其解。

看到一种方法,通过执行“SELECT [Name] FROM MSysObjects WHERE Type=1 AND Left([Name],1)<>'~' AND Left([Name],4)<>'MSys' ORDER BY [Name]”来获得表名,经试验成功,但仅限于我本机通过Access创建的数据库,因为它需要访问一个System.mdw文件。这样不具有通用性。

请问大家谁知道怎么解决这个问题?

谢谢!
...全文
52 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
HapTears 2002-10-14
那有没有哪位大侠知道,怎么枚举出局域网上的sql服务器了,有怎么枚举出一个sql服务器上的所有库名了,然后在枚举出表名了.
回复
dreamdragon2008 2002-06-07
OleDbConnection nwindConn = new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");

nwindConn.Open();
DataTable schemaTable = nwindConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
new object[] {null, null, null, "TABLE"});
回复
saucer 2002-06-07
try

OleDbConnection.GetOleDbSchemaTable
回复
triout 2002-06-07
好象以前看到过这样的帖子,也已经解决了,但我忘记连接了。
回复
发动态
发帖子
C#
创建于2007-09-28

10.4w+

社区成员

.NET技术 C#
申请成为版主
社区公告

全世界最好的语言,没有之一.