系统是xp professional ,数据库是sql server 2005 标准版,
SqlConnection conn = new SqlConnection();
                        conn.ConnectionString = "server=.;uid=sa;pwd=sa;database=master";
                        conn.Open();
                        SqlCommand cmd = new SqlCommand();
                        this.textBox5.Text = saveFileDialog1.FileName.ToString();
                        cmd.CommandText = "BACKUP DATABASE " + this.comboBox1.Text.Trim() + " TO DISK='" +
                            saveFileDialog1.FileName.ToString() + "'";
                        cmd.Connection = conn;
                        cmd.ExecuteNonQuery();
                        conn.Close();
                        conn.Dispose();
                        MessageBox.Show("文件备份成功!");
网上找了一下,有人说是硬盘的文件系统,而我文件系统都是ntfs,又有人说是windows 登陆用户权限有问题,??
但感觉都不对,因为在sql server management studio 中 备份没有问题,能够备份,就是C# 程序出现这问题??
望高手出来仔细说一下,说细点????????

解决方案 »

  1.   

    cmd.CommandText = "BACKUP DATABASE " + this.comboBox1.Text.Trim() + " TO DISK='" +
                                saveFileDialog1.FileName.ToString() + "'"; 
    BACKUP DATABASE 这个操作是备份数据库到服务器的文件系统的 saveFileDialog1.FileName.ToString() 这个是你本地的文件系统根本不是一回事
      

  2.   


    cmd.CommandText = "BACKUP DATABASE " + this.comboBox1.Text.Trim() + " TO DISK='C:\111.dbk'"; 
    试试这个肯定没问题
      

  3.   

    试了一下,果然没问题,但是有点想不通,sql server 安装在本机上,程序savefiledialog 只是想得到一个保存路径,比如:D:\back.bak;
    这样也不行么??
      

  4.   

    在asp.net中备份还原SQL Server数据库web中,安全性主要体现在两个方面:一个是程序安全性,即防止网页在插入恶意代码;另一个是数据库安全性,这个我们可以经常备份数据库来实现。在文中,我将演示如果在网页中备份和恢复数据库。其实备份和恢复数据库都是利用SQL Server提供的SQL语句来备份的。备份:use master;backup database @name to disk=@path;恢复:use master;restore database @name from disk=@path;上面用的是参数化SQL语句,可以在程序执行的时候动态给参数赋值。
      

  5.   

    我在WebForm中都实现了,在WinForm自然也能了。
      

  6.   

    把你的CommandText 打印出来看看是啥.
      

  7.   

    当前数据库正在使用(有连接对象)的时候,backup恢复数据库会失败,这种情况怎么解决啊?
      

  8.   

    cmd.CommandText = "BACKUP DATABASE " + this.comboBox1.Text.Trim() + " TO DISK='" + 
                                @saveFileDialog1.FileName.ToString() + "'";