我使用此代码进行备份,但给出了一些错误 [英] i use this code for backup but some error are given

查看:75
本文介绍了我使用此代码进行备份,但给出了一些错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

private void button1_Click(object sender, EventArgs e)
        {
            _BackupDatabase("master", "C:\backup");
            
        }
        public void _BackupDatabase(string databaseName, string filePath)
        {
            try
            {
                Server sqlServerInstance = new Server(
                new Microsoft.SqlServer.Management.Common.ServerConnection(
                new System.Data.SqlClient.SqlConnection(@"Data Source=GAURAV-31B52EEB\SQLEXPRESS;Initial Catalog=master;Integrated Security=True")));// your connection string I place mine for illustration.. DON'T HARDLY WRITE IT, pass it as argument or add it in application configuration 
                Backup backupMgr = new Backup();
                backupMgr.Devices.AddDevice(filePath, DeviceType.File);
                backupMgr.Database = databaseName;
                backupMgr.Action = BackupActionType.Database;
                backupMgr.SqlBackup(sqlServerInstance);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + " " + ex.InnerException);
            }
        }



错误
=====================
{服务器" GAURAV-31B52EEB \\ SQLEXPRESS"的备份失败.}



error
======================
{"Backup failed for Server ''GAURAV-31B52EEB\\SQLEXPRESS''. "}

推荐答案

可能是权限问题.
Windows 7将访问任何硬盘的根文件夹的权限仅限制为Admin:尝试将备份写入具有任何用户"读写权限的子文件夹.
Chances are it''s a permissions problem.
Windows 7 restricts access to the root folder of any hard disk to Admin only: try writing your backup to a subfolder that has "any user" read and write permissions instead.


Hi use below sp
 

 
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Sp_DatabaseBackup]
as
Begin
DECLARE @name VARCHAR(50) -- database name
DECLARE @path VARCHAR(256) -- path for backup files
DECLARE @fileName VARCHAR(256) -- file name for backup
DECLARE @fileDate VARCHAR(20) -- used for file name
SET @path = ''C:\Users\Publishing\Desktop\''
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN (''master'',''model'',''msdb'',''tempdb'')
OPEN db_cursor 
FETCH NEXT FROM db_cursor INTO @name 
WHILE @@FETCH_STATUS = 0 
BEGIN 
SET @fileName = @path + @name + ''_'' + @fileDate + ''.BAK''
BACKUP DATABASE @name TO DISK = @fileName
 FETCH NEXT FROM db_cursor INTO @name 
END 
CLOSE db_cursor 
DEALLOCATE db_cursor 
End




尝试使用 SQL身份验证进行备份.使用SQL Server用户之一修改您的ConnectionString.


希望对您有帮助,

谢谢
-amit.
Hi,

try to use SQL Authentication to backup. modify your ConnectionString with one of the SQL server user.


hope that may help you,

thanks
-amit.


这篇关于我使用此代码进行备份,但给出了一些错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆