日期:2014-05-18  浏览次数:20388 次

今天试验的一个问题和大家共享一下
分就不给很多了,因为主要是和大家分享这个问题的结论。
去年的时候做过一个局域网备份工具,我当时就是在本地备份之后压缩然后上传到服务器的,今天我有个想法,直接用C#连接目标机器,然后直接backup会不会把数据库直接备份到本机呢?

刚才写了个程序试验了一下,是行不通的。代码如下:
C# code

SqlConnection conn = new SqlConnection();
            conn.ConnectionString = "server=10.68.69.203,81;database=cpudata;user id =sa;password=19790601";
            try
            {
                //------------------结论这种方法是不合适的---------------------
                conn.Open();
                Console.WriteLine(conn.State.ToString());
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = "backup database cpudata to disk='d:\a.bak'";
                int i = cmd.ExecuteNonQuery();
                Console.WriteLine(i.ToString());
            }
            catch (Exception ex)
            {

                throw ex;
            }
            finally
            {
                conn.Close();
            }
            Console.ReadLine();


会提示:
无法打开备份设备 'd:\a.bak'。出现操作系统错误 123(文件名、目录名或卷标语法不正确。)。
BACKUP DATABASE 正在异常终止。

------解决方案--------------------
如果10.68.69.203有d盘,好像能同运行,不过备份到10.68.69.203的d盘
------解决方案--------------------
应该需要映射这些吧。