ServerConnection不能使用连接字符串

时间:2015-04-04 17:51:30

标签: c# sql .net sql-server

我使用下面的代码在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测试了连接字符串,它的工作正常并且开得很好。

4 个答案:

答案 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);