当前位置:编程学习 > C#/ASP.NET >>

C#窗体应用程序下的数据库备份方法...

网上查阅了下方法...1.使用SQL语句来备份数据库 2.使用SQLDMO组件来备份数据库

本人使用的第二种方法:

引用
引用
  SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
  SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
  try
  {
  oSQLServer.LoginSecure = false;
  oSQLServer.Connect("localhost", "sa", "1234");
  oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
  oBackup.Database = "Northwind";
  oBackup.Files = @"d:Northwind.bak";
  oBackup.BackupSetName = "Northwind";
  oBackup.BackupSetDescription = "数据库备份";
  oBackup.Initialize = true;
  oBackup.SQLBackup(oSQLServer);
  }


问题出在红色句子上..不知如何改写
因为做项目时……数据源的来源选择了SQL数据库文件 导致本地SQL服务器下没有我所要备份的数据库……
换用本地服务器下任意数据库均备份成功

尝试把数据库导入本地服务器下也失败了


请教下解决方法 恩... --------------------编程问答-------------------- 尝试把数据库导入本地服务器下也失败了

报什么错误?

--------------------编程问答-------------------- 直接sqlconnection连接SQLSERVER,然后SQL脚本备份 --------------------编程问答-------------------- 学习。。。 --------------------编程问答-------------------- 不清楚怎么回事 --------------------编程问答-------------------- CREATE proc dbo.Data_Backup @dbname sysname='',@bkpath nvarchar(260)='',@bkfname nvarchar(260)='',@bktype nvarchar(10)='DB',@appendfile bit=1  
as declare @sql varchar(8000) if isnull(@dbname,'')='' set @dbname=db_name() if isnull(@bkfname,'')=''  
set @bkfname='\DBNAME\_\DATE\_\TIME\.BAK' set @bkfname=replace(replace(replace(@bkfname,'\DBNAME\',@dbname),'\DATE\',convert(varchar,getdate(),112)),'\TIME\',replace(convert(varchar,getdate(),108),':',''))  
update XTSZ set FNAME=@bkfname
set @sql='backup '+case @bktype when 'LOG' then 'log ' else 'database ' end +@dbname +' to disk='''+@bkpath+@bkfname +''' with '+case @bktype when 'DF' then 'DIFFERENTIAL,' else '' end+case @appendfile when 1 then 'NOINIT' else 'INIT' end  
exec(@sql)
http://topic.csdn.net/u/20100422/16/5774810d-a6f9-4a2a-bcc9-977c709adaf9.html?80552 --------------------编程问答-------------------- 这是数据库连接字段……连接SQL实例时使用附加数据库
   connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DatabaseYDGL.mdf;Integrated Security=True;User Instance=True"


这是备份数据库的SQL语句
  SqlConnection Conn = DataConnection.MyConnection();
        public void BackupDataBase()
        {
           string  DataBaseName = "DatabaseYDGL";
           string  DataBaseOfBackupName = @"back.bak";
           string  DataBaseOfBackupPath = @"D:\Program Files\Microsoft SQL Server\MSSQL\Data\";
            try
            {
               
                Conn.Open();
               SqlCommand  Comm = new SqlCommand();
                Comm.Connection = Conn;
                Comm.CommandText = "use master;backup database @dbname to disk = @backupname;";
                Comm.Parameters.Add(new SqlParameter(@"dbname", SqlDbType.NVarChar));
                Comm.Parameters[@"dbname"].Value = DataBaseName;
                Comm.Parameters.Add(new SqlParameter(@"backupname", SqlDbType.NVarChar));
                Comm.Parameters[@"backupname"].Value = @DataBaseOfBackupPath + @DataBaseOfBackupName;
                Comm.CommandType = CommandType.Text;
                Comm.ExecuteNonQuery();
                MessageBox.Show("备份数据库成功", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            finally
            {
                Conn.Close();
            }
        }


这是错误信息


这个问题怎么解决啊... --------------------编程问答--------------------
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,