1. /// <summary>
  2. /// 还原数据库
  3. /// </summary>
  4. /// <param name="dataBaseName">数据库名称</param>
  5. /// <param name="path">还原的路径bak文件</param>
  6. /// <param name="UserId">用户名</param>
  7. /// <param name="PassWord">密码</param>
  8. /// <param name="DataSource">IP或者当前服务(.)</param>
  9. public static void Restoredb(string dataBaseName, string path, string userId, string passWord, string dataSource)
  10. {
  11. var strconn = "Data Source=" + dataSource + ";Initial Catalog=master;User ID=" + userId + ";pwd =" + passWord + "";
  12. DataTable DBNameTable = new DataTable();
  13. SqlDataAdapter Adapter = new SqlDataAdapter("select name from master..sysdatabases", strconn);
  14. lock (Adapter)
  15. {
  16. Adapter.Fill(DBNameTable);
  17. }
  18. foreach (DataRow row in DBNameTable.Rows)
  19. {
  20. if (row["name"].ToString() == dataBaseName)
  21. {
  22. throw new KnownException("已存在对应的数据,请勿重复还原数据库!");
  23. }
  24. }
    //检测真正当前bak文件真正的log mdf的名字
  25. var strsql = " restore filelistonly from disk = \'" + path + "\'";
  26. SqlDataAdapter Adapter2 = new SqlDataAdapter(strsql, strconn);
  27. var dt = new DataTable();
  28. lock (Adapter2)
  29. {
  30. Adapter2.Fill(dt);
  31. }
  32. var mdf = dt.Rows[0][0].ToString();
  33. var log = dt.Rows[1][0].ToString();
  34. string restore = string.Format(@"restore database {0} from disk = \'{1}\'
  35. with REPLACE
  36. , move \'{2}\' to \'D:\{3}.mdf\'
  37. ,move \'{4}\' to \'D:\{5}.ldf\'", dataBaseName, path, mdf, dataBaseName, log, dataBaseName);
  38. SqlConnection conn = new SqlConnection(strconn);
  39. SqlCommand cmd1 = new SqlCommand(restore, conn);
  40. conn.Open();//k
  41. cmd1.ExecuteNonQuery();
  42. conn.Close();//g
  43. }
  44. /// <summary>
  45. /// 删除数据库
  46. /// </summary>
  47. /// <param name="dataBaseName"></param>
  48. /// <param name="UserId"></param>
  49. /// <param name="PassWord"></param>
  50. /// <param name="DataSource"></param>
  51. /// <param name="code"></param>
  52. /// <returns></returns>
  53. public static void DeleteDataBase(string dataBaseName, string userId, string passWord, string dataSource)
  54. {
  55. var strconn = "Data Source=" + dataSource + ";Initial Catalog=master;User ID=" + userId + ";pwd =" + passWord + "";
  56. SqlConnection conn = new SqlConnection(strconn);//创建一个数据库连接对象
  57. conn.Open();
  58. var strsql = string.Format("drop database {0}", dataBaseName);
  59. SqlCommand cmd = new SqlCommand(strsql, conn);
  60. cmd.ExecuteNonQuery();
  61. try
  62. {
  63. cmd.ExecuteNonQuery();
  64. }
  65. catch (Exception ex)
  66. {
  67. throw new KnownException(ex.Message);
  68. }
  69. finally
  70. {
  71. conn.Close();//g
  72. }
  73. }

 

版权声明:本文为hbh123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/hbh123/p/9566227.html