来自C#的错误路径备份目录SQL Server [英] Error Path Backup Directory SQL Server from C#
问题描述
亲爱的朋友,
我只是尝试使用C#制作备份SQL Server
I just try to make a backup SQL Server using C#
但是对于位置,我只是将其放入文本编辑器
but for the location I just put it into text editor
这是我的代码:
使用系统;
使用System.Collections.Generic;
使用System.ComponentModel;
使用System.Data;
使用System.Data.SqlClient;
使用System.Drawing;
使用System.IO;
使用System.Linq;
使用System.Text;
使用System.Threading.Tasks;
使用System.Windows.Forms;
命名空间AutoBackup
{
公共局部类Form1:Form
{
字符串路径= Path.Combine(Environment.CurrentDirectory,@"SettingAutoBackup \ AutoBackup.txt");
公共Form1()
{
InitializeComponent();
}
private void button1_Click(对象发送者,EventArgs e)
{
var数据=文件
//.ReadAllLines("G:\\Project Steven \\ HIS LIS自动执行存储过程\\记事本值\\ Text_To_C_Sharp \\ test.txt)
.ReadAllLines(路径)
.Select(x => x.Split('='))
.哪里(x => x.Length> 1)
.ToDictionary(x => x [0] .Trim(),x => x [1]);
字符串dir = data ["LocationHIS"];
字符串数据库= data ["DatabaseHIS"];
字符串connectionString =数据源= SVR-01;初始目录=测试;用户ID = sa;密码= xxx" ;;
SqlConnection con =新的SqlConnection(connectionString);
试试
{
//string cmd =备份数据库测试到磁盘='C:\\ Backup \\ Test_'"; + DateTime.Now.ToString("yyyyMMdd-HH-mm-ss")+".bak'"; ->很好
字符串cmd =备份数据库测试到磁盘=" + Path.Combine(dir,数据库)+ DateTime.Now.ToString("yyyyMMdd-HH-mm-ss")+.bak"; ->它不起作用,什么都没有
这个脚本发生
使用(SqlCommand命令=新的SqlCommand(cmd,con))
{
如果(con.State!= ConnectionState.Open)
{
con.Open();
}
command.ExecuteNonQuery();
con.Close();
MessageBox.Show(数据库备份成功完成");
}
}
catch(异常例外)
{
MessageBox.Show(ex.Message);
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AutoBackup
{
public partial class Form1 : Form
{
string path = Path.Combine(Environment.CurrentDirectory, @"SettingAutoBackup\AutoBackup.txt");
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var data = File
//.ReadAllLines("G:\\Project Steven\\HIS LIS automatic execute Store Procedure\\Notepad Value\\Text_To_C_Sharp\\test.txt")
.ReadAllLines(path)
.Select(x => x.Split('='))
.Where(x => x.Length > 1)
.ToDictionary(x => x[0].Trim(), x => x[1]);
string dir = data["LocationHIS"];
string database = data["DatabaseHIS"];
string connectionString = "Data Source= SVR-01; Initial Catalog=test; User Id=sa; Password=xxx";
SqlConnection con = new SqlConnection(connectionString);
try
{
//string cmd = "BACKUP DATABASE test TO DISK= 'C:\\Backup\\Test_" + DateTime.Now.ToString("yyyyMMdd--HH-mm-ss") + ".bak'"; --> It works fine
string cmd = "BACKUP DATABASE test TO DISK='" + Path.Combine(dir,database)+ DateTime.Now.ToString("yyyyMMdd--HH-mm-ss")+".bak'"; --> it doesn't work, nothing
happen with this script
using (SqlCommand command = new SqlCommand(cmd, con))
{
if (con.State != ConnectionState.Open)
{
con.Open();
}
command.ExecuteNonQuery();
con.Close();
MessageBox.Show("database backup done successefully");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
有人可以帮助我吗
此致
史蒂夫·亨利
推荐答案
您好steve_henry,
Hi steve_henry,
谢谢您在这里发布.
对于您的问题,请按如下所示更改.txt文件中的路径.
For your question, please change the path in .txt file like following.
DatabaseHIS=Test
LocationHIS=C:\Backup\
我给您的代码发短信. cmd是可以正常工作的代码. cmd是无效的代码.
I text the your code. cmd is the code which works fine. cmd is the code which does not work.
//string cmd = "BACKUP DATABASE test TO DISK= 'C:\\Backup\\Test_" + DateTime.Now.ToString("yyyyMMdd--HH-mm-ss") + ".bak'"; --> It works fine
string cmd2 = "BACKUP DATABASE test TO DISK='" + Path.Combine(dir,database)+ DateTime.Now.ToString("yyyyMMdd--HH-mm-ss")+".bak'"; --> it doesn't work, nothing happen with this script
我创建一个messageBox来显示路径.请尝试一下.
I make a messageBox to show the path. Please have a try.
我希望这会有所帮助.
最好的问候,
温迪
这篇关于来自C#的错误路径备份目录SQL Server的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!