2011-11-16 50 views
4

我正在开发一个Web应用程序。我需要获取数据库文件路径。 在c#中获取数据库文件路径的方法是什么? 例如:如何获取当前连接的数据库文件路径?

E:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/Data/MyDatabase.mdf 
+3

为什么这个问题标记asp.net?这与SQL Server比ASP更重要。 –

+0

@Merlyn,我的项目与数据库连接,ConnectionString在webconfig中声明。所以我很好奇我是否可以通过webconfig获取数据库路径。 :) – DEN

+0

@DEN你可以在'web.config'中使用'connectionString'来对你的数据库执行查询。请参阅下面的答案。 – 2011-11-16 03:29:43

回答

12
select physical_name 
from sys.database_files 
where type = 0 

以上是SQL查询来执行。下面是C#代码,将检索和这些数据存储在一个string

SqlConnection DbConn = new SqlConnection(ConfigurationManager.ConnectionStrings["CStringName"].ConnectionString); 
SqlCommand GetDataFile = new SqlCommand(); 
GetDataFile.Connection = DbConn; 
GetDataFile.CommandText = "select physical_name from sys.database_files where type = 0"; 

try 
{ 
    DbConn.Open(); 
    string YourDataFile = (string) GetDataFile.ExecuteScalar(); 
    DbConn.Close(); 
} 
catch (Exception ex) 
{ 
    DbConn.Dispose(); 
} 
-1

Server.mappath将返回路径

+2

MapPath将服务器上的虚拟路径映射到物理路径。没有到mdf文件的虚拟路径。 – Jason

+0

这是假设SQL Server与网站运行在同一台计算机上,可能会或可能不会。此外,Server.MapPath并非真正用于虚拟目录层次结构之外的文件路径(但可能是可能的),请参阅此处了解更多信息:http://stackoverflow.com/questions/3422270/how使用服务器映射到位置外网站文件夹在ASP网 – Rich

+1

@Jason:至少不应该有... –

相关问题