2015-04-04 3 views
-2

Я использую ниже код для создания резервной копии из моей базы данных в C# .net. но когда я запускаю код, я получаю эту ошибку:ServerConnection не работает со строкой подключения

Не удалось подключиться к серверу Источник данных =; Начальный каталог = Угловой JS; Интегрированная безопасность = Истина.

мой код, чтобы сделать это:

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, и его работа прекрасна и открыта очень хорошо.

+1

Мое предположение заключается в том, что txtServerName.Text заполняется символом "." и ищет имя сервера. – Bob

+0

есть текстовый сервер =. ; это неправильно? –

+0

Обычно я вижу Data Source = ServerName – Bob

ответ

0

Ваш код неправильно, используйте:

ServerConnection con = new ServerConnection(
    new SqlConnection(
     "Data Source=" + txtServerName.Text + ";Initial Catalog=" 
     + drpDatabases.SelectedItem.ToString() 
     + ";Integrated Security=True")); 
+0

Вы должны объяснить, что [ServerConnection (String)] (https://msdn.microsoft.com/en-us/library/ms191560.aspx) ожидает имя экземпляра, а не строку подключения. OP также мог бы написать 'new ServerConnection (txtServerName.Text)'. –

0

Перегрузка ServerConnection(string) ожидает имя экземпляра, а не строки соединения. Вы можете просто написать new ServerConnection(".") или:

var con = new ServerConnection(txtServerName.Text); 

сообщение об ошибке говорит, что ServerConnection пытался подключиться к серверу, имеющему имя так же, как строка соединения с всем и не удался.

ServerConnection представляет соединение с конкретным сервером , а не с базой данных, поэтому ему не нужен объект SqlConnection. Если вы его подаете, он используется только для извлечения соответствующей информации.

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.

Смежные вопросы