⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbbackandstore.cs

📁 汽车销售管理系统,进销存系统典范,值得初学者多多学习
💻 CS
字号:
using System;
using System.Data;
using System.Data.SqlClient;

namespace MainPrj_CarShop
{

		/// <summary>
		/// 备份和还原sql数据库
		/// </summary>
		public class BackupDataAndStore
		{
			private SqlConnection conn;
			public BackupDataAndStore()
			{
				//
				// TODO: 在此处添加构造函数逻辑
				//
				string sql="server=.;uid=sa;pwd=;persist security info=False;database=master";
				conn=new SqlConnection(sql);
			}

			/// <summary>
			/// 备份数据库
			/// </summary>
			/// <param name="databasename"></param>
			/// <param name="backuptodatabase"></param>
			/// <returns></returns>
			public bool BackUpDataBase(string databasename,string backuptodatabase)
			{
				string procname;
				string sql;
				
				
				conn.Open();        

				
				procname="sp_dropdevice";
				SqlCommand sqlcmd1=new SqlCommand(procname,conn);
				sqlcmd1.CommandType =CommandType.StoredProcedure;

				SqlParameter sqlpar=new SqlParameter();
				sqlpar=sqlcmd1.Parameters.Add("@logicalname",SqlDbType.VarChar,20);
				sqlpar.Direction =ParameterDirection.Input;
				sqlpar.Value =databasename;

				try        
				{
					sqlcmd1.ExecuteNonQuery();
				}
				catch(SqlException ex)
				{
					throw ex;
				}
				catch(Exception ex)
				{
					throw ex;
				}

				
				procname="sp_addumpdevice";
				SqlCommand sqlcmd2=new SqlCommand(procname,conn);
				sqlcmd2.CommandType =CommandType.StoredProcedure;

				sqlpar=sqlcmd2.Parameters.Add("@devtype",SqlDbType.VarChar,20);
				sqlpar.Direction =ParameterDirection.Input;
				sqlpar.Value ="disk";

            
				sqlpar=sqlcmd2.Parameters.Add("@logicalname",SqlDbType.VarChar,20);
				sqlpar.Direction =ParameterDirection.Input;
				sqlpar.Value =databasename;

				sqlpar=sqlcmd2.Parameters.Add("@physicalname",SqlDbType.NVarChar,260);
				sqlpar.Direction =ParameterDirection.Input;
				sqlpar.Value =backuptodatabase+".bak";

            
				try
				{
					int i=sqlcmd2.ExecuteNonQuery();
				}
				catch(SqlException ex)
				{
					throw ex;
				}
				catch(Exception ex)
				{
					throw ex;
				}

				
				sql="BACKUP DATABASE "+databasename +" TO "+databasename +" WITH INIT";
				SqlCommand sqlcmd3=new SqlCommand(sql,conn);
				sqlcmd3.CommandType =CommandType.Text;
				try
				{
					sqlcmd3.ExecuteNonQuery();
				}
				catch(SqlException ex)
				{
					throw ex;
				}
				catch(Exception ex)
				{
					throw ex;
				}
				finally
				{
					conn.Close();
				}
				conn.Close();

				return true;

			}

			/// <summary>
			/// 还原指定的数据库文件
			/// </summary>
			/// <param name="databasename"></param>
			/// <param name="databasefile"></param>
			/// <returns></returns>
			public bool RestoreDataBase(string databasename,string databasefile )
			{

				string sql="RESTORE DATABASE "+databasename +" from DISK = '"+databasefile +"' ";
				SqlCommand sqlcmd=new SqlCommand(sql,conn);
				sqlcmd.CommandType =CommandType.Text;
				
				conn.Open();

				try
				{
						sqlcmd.ExecuteNonQuery();
				}
				catch(SqlException ex)
				{
					if(conn.State==ConnectionState.Closed)
					{
						conn.Open();
						sqlcmd.ExecuteNonQuery();
						return true;
					}
					else
						throw ex;
				}
				catch(Exception ex)
				{
					throw ex;
				}
				finally
				{
					conn.Close();
				}

				return true;
			}

		}
	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -