我试图返回数据库的mdf/ldf文件的物理文件路径.
我尝试使用以下代码:
Server srv = new Server(connection); Database database = new Database(srv, dbName); string filePath = database.PrimaryFilePath;
但是这会引发异常"'database.PrimaryFilePath'引发类型'Microsoft.SqlServer.Management.Smo.PropertyNotSetException'的异常 - 即使我正在运行此数据库的数据库存在,并且其mdf文件位于c:\ Program Files\Microsoft SQL Server\MSSQL.1\MSSQL
我究竟做错了什么?
通常问题是DefaultFile属性为null.除非FileName属性中另有指定,否则缺省数据文件是数据文件存储在SQL Server实例上的位置.如果未指定其他默认位置,则属性将返回空字符串.
因此,如果未设置默认位置,则此属性不会返回任何内容(空字符串).
解决方法是检查DefaultFile属性,如果它返回空字符串,则使用SMO获取master数据库,然后使用Database.PrimaryFilePath属性检索默认数据文件位置(因为它没有更改)
既然你说问题与你的PrimaryFilePath有关:
确认您的连接已打开
确认其他属性可用