LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#如何获取指定数据库的mdf文件所在硬盘物理储存地址?

admin
2026年3月9日 11:53 本文热度 189

在C#中获取SQL Server数据库文件(如clicksun.mdf)的物理存储路径,可通过以下步骤实现:

方法1:通过SQL查询直接获取

这是最直接且推荐的方式,适用于有查询权限的用户账号(如sa) 。

  1. 建立数据库连接
    使用SqlConnection连接数据库,配置连接字符串如下:

    csharp
    string connectionString = "Server=(local);Database=clicksun;User ID=sa;Password=sa$3@21;";
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        // 执行查询
    }
  2. 执行系统视图查询
    通过查询sys.master_files系统视图获取文件路径:

    csharp
    string query = @"SELECT physical_name AS PhysicalPath 
                     FROM sys.master_files 
                     WHERE database_id = DB_ID('clicksun') 
                       AND type_desc = 'ROWS'";  // ROWS表示数据文件(mdf)
    using (SqlCommand command = new SqlCommand(query, connection))
    {
        using (SqlDataReader reader = command.ExecuteReader())
        {
            if (reader.Read())
            {
                string mdfPath = reader["PhysicalPath"].ToString();
                Console.WriteLine($"物理路径:{mdfPath}");
            }
        }
    }

    说明

    • type_desc = 'ROWS'筛选数据文件(对应.mdf),LOG筛选日志文件(对应.ldf)。
    • 需要确保sa账号有权限访问系统视图sys.master_files

方法2:通过SSMS属性查看(手动方式)

若需临时验证路径,可通过SSMS手动操作:

  1. 右键数据库clicksun → 属性 → 文件 → 查看“路径”列的值。
  2. 此路径即.mdf文件的实际存储位置。

注意事项

  1. 权限问题
    • sa账号权限受限,可能无法查询系统视图。需确保账号具有VIEW SERVER STATE权限。
  2. 路径有效性
    • 返回的路径可能包含网络路径或本地绝对路径,需根据实际环境处理路径格式。
  3. 动态参数化
    • 若需动态获取不同数据库路径,可将DB_ID('clicksun')替换为变量。

通过上述代码,可直接在C#中获取clicksun.mdf的物理路径。推荐优先使用方法1,因其自动化且适用于程序集成。


该文章在 2026/3/10 10:18:06 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved