Pregunta

Me gustaría ser capaz de ejecutar una copia de seguridad en la demanda de base de datos SQL Express 2008 de un .Net MVC aplicación a, por ejemplo un palo de flash conectado a la máquina que ejecuta la aplicación.

He intentado

QuickstemDataContext db = new QuickstemDataContext();
 string quickstem_path = Path.Combine(save_path, "quickstem.backup");
 db.ExecuteCommand(string.Format("BACKUP DATABASE {1} TO DISK = '{0}' WITH COMPRESSION;", quickstem_path, db.Mapping.DatabaseName));

Pero conseguir la excepción

no existe

Base de datos 'quickstem'. Asegúrese de que el nombre se ha introducido correctamente. BACKUP DATABASE termina de forma anormal

Estoy usando la siguiente cadena de conexión.

connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\quickstem.mdf;Integrated Security=True;User Instance=True"

¿Es necesario adjuntar la base de datos usando algo como expreso Management Studio y darle un nombre, etc. Lo ideal es que quiero mantener el despliegue aplicación muy sencilla, sin tener que configurar SQL Management Studio etc. Puede esta fijación se realiza un modo u otro puede hacerse una copia de seguridad sin necesidad de siquiera adjuntar

Me trató de dar la ruta completa del archivo .mdf en lugar del nombre de base de datos, pero tiene un error de sintaxis en c:

¿Fue útil?

Solución

Usted encontrará que si se agrega Database=Quickstem a la cadena de conexión, el código de seguridad funcionará bien.

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\quickstem.mdf;Integrated Security=True;User Instance=True;Database=Quickstem
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top