C# Windows 服务安装和还原需要的SQL Server 数据库库
来源:互联网 发布:淘宝男装排名 编辑:程序博客网 时间:2024/06/06 11:41
制作msi安装文件的同时,还原备份的sql server 数据库。
在http://blog.csdn.net/xbfitliu/article/details/8507900中自定义安装类中(8、自定安装类获取自定义界面输入的数据)
添加还原Sql Server数据库操作。下面方法就是在安装的过程中增加还原备份的Sql Server数据库。
private void RestoreDB(string dbServer, string uName, string pwd, string targetdir, string dbName, string dbInstallPath) { File.AppendAllText(Path.Combine(targetdir, "log.txt"), "开始还原备份数据库……" + Environment.NewLine); string strConn = string.Format("Data Source = {0};DataBase=master;User ID = {1};PWD={2}", dbServer, uName, pwd); //数据恢复语句:restore database 数据库名 from disk='保存路径/dbName.bak' WITH MOVE 'dbName_Data' TO 'c:/tcomcrm20041217.mdf', --数据文件还原后存放的新位置 //dbName_Data为数据库逻辑文件名可以用RESTORE FILELISTONLY FROM DISK = '文件路径' StringBuilder sBuilder = new StringBuilder(); sBuilder.AppendFormat(@"RESTORE DATABASE {0} FROM DISK='{1}' ", dbName, Path.Combine(targetdir, string.Format("{0}.bak", dbName))); sBuilder.AppendFormat(@" WITH MOVE '{0}' TO '{1}' ", dbName, Path.Combine(dbInstallPath, string.Format("{0}.mdf", dbName))); sBuilder.AppendFormat(@" ,MOVE '{0}_log' TO '{1}' ", dbName, Path.Combine(dbInstallPath, string.Format("{0}.ldf", dbName))); SqlConnection conn = new SqlConnection(strConn); try { conn.Open(); File.AppendAllText(Path.Combine(targetdir, "log.txt"), "打开连接……" + Environment.NewLine); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandType = CommandType.Text; cmd.CommandText = sBuilder.ToString(); File.AppendAllText(Path.Combine(targetdir, "log.txt"), sBuilder.ToString() + Environment.NewLine); cmd.ExecuteNonQuery(); File.AppendAllText(Path.Combine(targetdir, "log.txt"), "执行还原操作……" + Environment.NewLine); } catch (Exception ex) { File.AppendAllText(Path.Combine(targetdir, "log.txt"), ex.Message + Environment.NewLine); throw new Exception("还原数据库出错"); } finally { if (conn != null && conn.State == ConnectionState.Open) { conn.Close(); conn.Dispose(); File.AppendAllText(Path.Combine(targetdir, "log.txt"), "释放资源。" + Environment.NewLine); } } }
在做类似操作,个人觉的记录日志是个很好方法,这样可以清楚的知道在哪一步出现了问题。代码中还原数据库要使用到备份数据库的逻辑文件名,否则还原出错。如果不知道可以通过RESTORE FILELISTONLY FROM DISK = '文件路径'。这样就可以获取到备份文件的逻辑文件名。
到此,安装包中还原数据库就完成了。
- C# Windows 服务安装和还原需要的SQL Server 数据库库
- sql server数据库的备份和还原
- C# 备份还原SQL Server数据库
- sql server 附加数据库和还原数据库
- Sql Server 2008数据库备份和还原
- sql server 数据库还原
- 还原SQL Server数据库
- 怎样做sql server数据库的还原
- 怎样做sql server数据库的还原
- 客户端SQL Server数据库的还原
- SQL SERVER 2008 的数据库还原
- Sql Server--还原备份的数据库
- 【SQL Server】数据库的备份与还原
- sql server 2005还原sql server 2000的数据库备份
- sql server 2005还原sql server 2000的数据库备份
- 安装 SQL Server 2008 需要 Windows PowerShell
- SQL SERVER将数据还原到需要的时间点
- webPart 需要的sql server服务。
- sql语句总结
- 修改ubuntu默认编辑器为vim
- Cocos2d-x CocosBuilder使用教程(一)HelloCocosBuilder
- java竞赛中对任意精度的整数运算
- arm-linux(ubuntu) 根文件系统 制作
- C# Windows 服务安装和还原需要的SQL Server 数据库库
- CSS设置网页图片透明度
- PreferenceActivity 中的 onBuildHeaders() 调用时机
- xcode 生成ipa
- Windows Phone 开发环境
- PHP取字符串长度
- CSS去除表格的默认间距并且制作1px的细线表
- 火狐浏览器div+css自适应高度
- C#与.net Framwork以及.net区别