2013-03-11 14 views
0

Я хочу сделать резервную копию моего DB, но я получил сообщение об ошибке:Резервное копирование базы данных

ConnectionStrings cannot be used like a method

Как я могу решить эту проблему?

string strCon = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"; 
string sSQL = "BACKUP DATABASE Database TO DISK = 'D:\\Database.bak';"; 
using (SqlConnection connection = new SqlConnection(ConfigurationManager.Connectionstrings(strCon).ConnectionString)) 
{ 
    SqlCommand command = new SqlCommand(sSQL, connection); 
    connection.Open(); 
    command.ExecuteNonQuery(); 
} 

ответ

0

ConnectionStrings - это коллекция. Он должен быть использован как:

ConfigurationManager.Connectionstrings[0].ConnectionString 
+0

не работает, если я это делаю –

+0

Вы пытаетесь получить соединение strin g из файла конфигурации? Причина. Я вижу, что у вас уже есть его в переменной 'strCon'. См. Ответ @Vishal Suthar –

1

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

Так было бы просто так:

using (SqlConnection connection = new SqlConnection(strCon)) 
{ 
    SqlCommand command = new SqlCommand(sSQL, connection); 
    connection.Open(); 
    command.ExecuteNonQuery(); 
} 

Рекомендуется: (хранить его в Web.config)

<connectionStrings> 
     <add name="job" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True" /> 
</connectionStrings> 

Тогда доступ к нему, как это: (using System.Configuration;)

ConfigurationManager.ConnectionStrings["job"].ConnectionString 
+0

теперь я получил эту ошибку: Неправильный синтаксис рядом с ключевым словом «База данных». –

+0

Вы использовали ключевое слово 'database' 2 раза, поэтому замените второй на ваше имя базы данных. так что, наконец, это будет: 'BACKUP DATABASE @Your_db TO DISK = 'D: \\ Database.bak';' –

+0

Какое имя базы данных вы хотите взять в резервную копию ..?. –

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