首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Server数据库附加到C#中,并自动使用正确的ldf文件

问将Server数据库附加到C#中,并自动使用正确的ldf文件
EN

Stack Overflow用户
提问于 2011-11-18 19:29:18
回答 1查看 4.1K关注 0票数 1

我的应用程序安装Server programmatically.

  • 在磁盘上有许多.mdf和.ldf文件,

  • 应用程序将所有数据库和日志文件复制到Server数据目录中,

  • 应用程序试图将数据库附加到

我的代码是:

代码语言:javascript
复制
FileInfo mdf = new FileInfo(dbfile);

databasename = mdf.Name.ToLower().Replace(@".mdf", @"");
StringCollection databasefiles = new StringCollection();
databasefiles.Add(mdf.FullName);
databasefiles.Add(mdf.FullName.ToLower().Replace(@".ldf", @"")); 
//this is where I have issue. Obviously I can't assume that the log file name would be the same as mdf file name with ldf extension. Thats when I thought there would be a way to read the header information from mdf file, and that will have ldf information.

Server sqlServer = new Server(textServer.Text);
sqlServer.AttachDatabase(databasename, databasefiles);

如何选择正确的.ldf文件。对于c:\temp中的示例,我有db1.mdf、db2.mdf和db1.ldf、db_1.ldf、db1_log.ldf。我如何知道哪个是db1.mdf的正确.ldf文件

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-18 19:35:07

不,据我所知,在文件本身中,MDF和LDF文件之间没有真正的“链接”。Server内部的数据库元数据中有一个链接。

我的方法可能是:

  • 检查mydatabase.ldf是否存在->如果是,使用
  • 检查如果mydatabase_log.ldf存在->如果是,使用
  • 检查mydatabase_1.ldf是否存在->如果是,使用

F 210

如果您还没有找到您的LDF文件,您可能可以在MDF所在的目录中搜索mydatabase*.ldf。这将在我们的测试服务器上不幸地失败--我们的系统管理员总是将.MDF/.NDF数据文件安装到SQL2008-DATA中,将.LDF日志文件安装到SQL2008-LOG目录中--完全独立。

在这种情况下,您要么需要在配置文件中配置映射.MDF -> .LDF,要么只需向用户弹出一个“查找.LDF文件”对话框.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8188017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档