C# 如何访问数据库中存储的表的名称?

C# 如何访问数据库中存储的表的名称?,c#,asp.net,sql-server-2005,visual-studio-2008,C#,Asp.net,Sql Server 2005,Visual Studio 2008,我知道类似的问题已经被问过很多次了。但这对我不起作用。我正在处理windows窗体应用程序。我在其中一个表单中放置了一个列表框,希望它显示存储在数据库中的表的名称。我应该写什么查询来访问这些表 USE db_name SELECT * FROM sys.Tables 我的数据库名是dbSave.mdf,但是如果我在上面的查询中将其作为db\u名称,它将不起作用 请帮忙 您所查找的数据库不同。最好使用某种抽象api。我不熟悉.NET的数据访问,但在java的库中,可以使用“元数据”对象来访问

我知道类似的问题已经被问过很多次了。但这对我不起作用。我正在处理windows窗体应用程序。我在其中一个表单中放置了一个列表框,希望它显示存储在数据库中的表的名称。我应该写什么查询来访问这些表

USE db_name 
SELECT * FROM sys.Tables
我的数据库名是
dbSave.mdf
,但是如果我在上面的查询中将其作为db\u名称,它将不起作用
请帮忙

您所查找的数据库不同。最好使用某种抽象api。我不熟悉.NET的数据访问,但在java的库中,可以使用“元数据”对象来访问

SELECT * FROM sys.objects 
WHERE Type_desc='USER_TABLE'
我希望这能帮助你:)

此外,您还可以在架构或数据库级别创建过滤器

这一个适合我:

SELECT * FROM information_schema.tables

我找到了。

我认为您的查询可以从数据库中检索表列表

SELECT * FROM sys.Tables
不需要使用use DB,因为您的应用程序连接字符串已连接到该数据库。 一旦这是另一个数据库,请为该数据库创建新的连接字符串


并验证您的用户在该工作数据库中拥有足够的权限

嗯,我正在使用sql server数据库。我对java一无所知。你说的“它不工作”是什么意思?你确定你正在使用的用户帐户有足够的访问权限来执行这种操作吗?是的,访问权限不是问题…它适用于我们为web应用程序创建的.dbo数据库,但对于Windows应用程序,我们没有.dbo我想,那么,在查询中,什么应该写为db_name呢?您不能直接查询
.mdf
文件-必须先将该文件附加到正在运行的SQL Server实例,然后使用逻辑数据库名称(而不是物理
.mdf
文件名)连接到该文件我想你是对的……thanx@marc_si有另一个想法来获得我需要的……我正在运行时保存表。为什么我不创建一个单独的表来存储表名,然后访问该表的记录并在列表框中显示它们呢?我并不是说这些查询会出错……但它们没有显示我的数据库(savedb.mdf)的表。请参见上面marc_的评论。当我第一次阅读你的问题时,我一定没有注意到桌子是一个.mdf。