直接sqlconnection连接SQLSERVER,然后SQL脚本备份

解决方案 »

  1.   

    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
      

  2.   

    这是数据库连接字段……连接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();
                }
            }
    这是错误信息
    这个问题怎么解决啊...