2015-05-18 7 views
-1

Неверный синтаксис рядом с 'C:'. Неверный синтаксис рядом с ключевым словом 'with'. Если этот оператор является общим табличным выражением, предложением xmlnamespaces или предложением контекста отслеживания изменений, предыдущий оператор должен быть прерван точкой с запятой.Неверный синтаксис рядом с 'C:'. Неверный синтаксис рядом с ключевым словом 'with'

SqlConnection objcon = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True;"); 
SqlCommand sqlcmd = new SqlCommand(); 

protected void btnBackup_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     string _DatabaseName = ddlDatabases.SelectedItem.Text.ToString(); 
     string _BackupName = _DatabaseName + "_" + DateTime.Now.Day.ToString() + "_" + DateTime.Now.Month.ToString() + "_" + DateTime.Now.Year.ToString() + ".bak"; 
     objcon.Open(); 
     string sqlQuery = "BACKUP DATABASE " + _DatabaseName + " TO DISK = 'C:\\SQLServerBackups\\" + _BackupName + "' WITH FORMAT, MEDIANAME = 'Z_SQLServerBackups', NAME = '" + _BackupName + "';"; 
     SqlCommand sqlCommand = new SqlCommand(sqlQuery, objcon); 
     sqlCommand.CommandType = CommandType.Text; 
     int iRows = sqlCommand.ExecuteNonQuery(); 
     objcon.Close(); 
     lblMessage.Text = "The " + _DatabaseName + " database Backup with the name " + _BackupName + " successfully..."; 
     ReadBackupFiles(); 
    } 
    catch (SqlException sqlException) 
    { 
     lblMessage.Text = sqlException.Message.ToString(); 
    } 
    catch (Exception exception) 
    { 
     lblMessage.Text = exception.Message.ToString(); 
    } 
} 
+2

возможный дубликат [Получение нечетной ошибки, запрос SQL Server с использованием предложения '\ WITH \"] (http://stackoverflow.com/questions/2746916/getting-an-odd-error-sql-server-query-using-with -clause) – Jonesopolis

+0

может кто-нибудь помочь –

+0

Кроме того, не просто pos t и сообщение об ошибке. Дайте какой-то контекст, расскажите, что вы пробовали. – Jonesopolis

ответ

0

Попробуйте следующее:

SqlConnection objcon = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True;"); 
    SqlCommand sqlcmd = new SqlCommand(); 
    protected void btnBackup_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      string _DatabaseName = ddlDatabases.SelectedItem.Text.ToString(); 
      string cleandb=Path.GetFileNameWithoutExtension(_DatabaseName); 
      string _BackupName = cleandb + "_" + DateTime.Now.Day.ToString() + "_" + DateTime.Now.Month.ToString() + "_" + DateTime.Now.Year.ToString() + ".bak"; 
      objcon.Open(); 
      string sqlQuery = "BACKUP DATABASE [" + _DatabaseName + "] TO DISK='C:\\SQLServerBackups\\" + _BackupName + "'"; 
      SqlCommand sqlCommand = new SqlCommand(sqlQuery, objcon); 
      sqlCommand.CommandType = CommandType.Text; 
      int iRows = sqlCommand.ExecuteNonQuery(); 
      objcon.Close(); 
      lblMessage.Text = "The " + _DatabaseName + " database Backup with the name " + _BackupName + " successfully..."; 
      ReadBackupFiles(); 
     } 
     catch (SqlException sqlException) 
     { 
      lblMessage.Text = sqlException.Message.ToString(); 
     } 
     catch (Exception exception) 
     { 
      lblMessage.Text = exception.Message.ToString(); 
     } 
    } 

Я удалил дополнительные параметры в команде резервного копирования, окружила имя базы данных с помощью кронштейнов и удалены пробелы вокруг знака равенства в DISK =

+0

Я получаю эту ошибку bro ... Не могу открыть устройство резервного копирования 'C: \ SQLServerBackups \ C: \ USERS \ MOHAMMED ZUBAIR \ DOCUMENTS \ VISUAL STUDIO 2012 \ PROJECTS \ WEBAPPLICATION11 \ WEBAPPLICATION11 \ APP_DATA \ DATABASE1.MDF_18_5_2015.bak'. Ошибка операционной системы 123 (неверно имя файла, имя каталога или тома.). BACKUP DATABASE заканчивается аномально. –

+0

У вас неправильный путь. Похоже, ваше имя базы данных встречается как путь. –

+0

Где находится резервная копия - это 'C: \ SQLServerBackups' или' C: \ USERS \ MOHAMMED ZUBAIR \ DOCUMENTS \ VISUAL STUDIO 2012 \ PROJECTS \ WEBAPPLICATION11 \ WEBAPPLICATION11 \ APP_DATA'? У вас есть оба пути. – PeteGO

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