我试图找出服务器上数据库所在的驱动器。为了进一步详细说明,该服务器上有一个服务器“MyServer”和三个数据库。数据库 A 和 B 位于该服务器的“C:\”驱动器上,数据库 C 位于“D:\”驱动器上。我想知道如何使用连接字符串来尝试获取驱动器盘符,以便当用户从应用程序中选择数据库时,它会告诉他们该数据库位于哪个驱动器上。
目前我正在尝试以下方式并没有得到正确的回应:
Private void GetDriveLetter()
{
string connectionString = String.Format(DatabaseInfo.CONNECTIONSTRING_TEMPLATE, dbName, server)
try
{
using (SqlConnection cn = new SqlConnection(ConnectionString))
{
cn.Open();
Server srv = new Server(new ServerConnection(cn));
Database database = new Database(srv, dbName);
txtDriveLetter.Text = database.PrimaryFilePath;
cn.Close();
}
}
catch (Exception ex)
{
myException = ex.Message
}
}
DatabaseInfo 只是一个我们用来读取 SQL Server 和数据库名称的类,而 myException 是一个将异常写入日志文件的函数。我遇到的问题是,无论我做什么,我都会收到一个异常,提示 PrimaryFilePath 从未设置。我是不是做错了什么/遗漏了什么,或者这不是解决这个问题的正确方法?
编辑:抱歉从未发布异常 要完成此操作,请设置属性 PrimaryFilePath。
最佳答案
您始终可以对 SQL Server 中的 sys
目录 View 运行查询:
SELECT * FROM sys.master_files
这将列出您的数据库、它的 id
、它的逻辑名称以及文件在磁盘上的位置。
关于c# - 在 C# 中使用 SQL 获取数据库的驱动器号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12642028/