我使用下面的代码在c#.net中从我的数据库创建备份。但是当我运行Code时遇到这个错误:
无法连接到服务器Data Source =。; Initial Catalog = AngularJs; Integrated Security = True。
我的代码是:
ServerConnection con = new ServerConnection("Data Source=" + txtServerName.Text + ";Initial Catalog=" + drpDatabases.SelectedItem.ToString() + ";Integrated Security=True");
Server server = new Server(con);
Backup source = new Backup();
source.Action = BackupActionType.Database;
source.Database = drpDatabases.SelectedItem.ToString();
BackupDeviceItem destination = new BackupDeviceItem(Path, DeviceType.File);
source.Devices.Add(destination);
source.SqlBackup(server);
con.Disconnect();
问题出在哪里?为什么这不起作用? 我用sqlconnection测试了连接字符串,它的工作正常并且开得很好。
答案 0 :(得分:0)
您的代码有误,请使用:
ServerConnection con = new ServerConnection(
new SqlConnection(
"Data Source=" + txtServerName.Text + ";Initial Catalog="
+ drpDatabases.SelectedItem.ToString()
+ ";Integrated Security=True"));
答案 1 :(得分:0)
ServerConnection(string)重载需要实例名称,而不是连接字符串。您只需撰写new ServerConnection(".")
或:
var con = new ServerConnection(txtServerName.Text);
错误消息告诉您ServerConnection
尝试连接到名称与整个连接字符串相同且失败的服务器。
ServerConnection表示与特定服务器的连接,而不是数据库,因此它不需要SqlConnection对象。如果您提供一个,它仅用于提取相关信息。
答案 2 :(得分:0)
试试这个:
SqlConnection con = new SqlConnection("Data Source=" + txtServerName.Text + ";Initial Catalog=" + drpDatabases.SelectedItem.ToString() + ";Integrated Security=True");
SeverConnection scon = new ServerConnection(con);
Server svr = new Server(scon);
因为我认为你为ServerConnection传递了一个不正确的参数。
答案 3 :(得分:0)
尝试一下:
ServerConnection con= new ServerConnection(new SqlConnectionStringBuilder(cnstring).DataSource);