Domanda

Ho scritto un bel programma di lunga C # utilizzando LINQ to SQL e i miei dati sono memorizzati in un MDF file che si trova nei pressi del mio programma EXE . Una parte del mio programma ha una forma per il backup dei file di database semplicemente copiando il MDF e LDF i file in una cartella specificata dall'utente.

Tuttavia, se mi query al database e quindi provare a sostituire i file originali con i backup, vado a prendere il file aperto in un altro processo eccezione come previsto ! Il problema è che non so come chiudere il MDF file nel SqlServer esempio.

Sono abbastanza nuovo per LINQ to SQL e lascio che i maghi del Visual Studio per gestire la maggior parte del lavoro! Quindi mi dispiace in anticipo se tutto quello che sto cercando di fare sembra stupido! : D

Qualsiasi aiuto o suggerimenti per migliorare i metodi di programmazione per il mio caso è molto apprezzato.

È stato utile?

Soluzione

Questo potrebbe non funzionare per le vostre esigenze, ma si potrebbe desiderare di prendere in considerazione il passaggio l'applicazione per utilizzare SQL Server Compact Edition ( "SQLCE") al posto di SQL Server (corretta). Sembra che si sta utilizzando il database come essenzialmente un file di supporto per la vostra applicazione, che non è davvero lo scopo previsto di SQL Server. SQLCE è progettato specificamente per questo genere di cose, e funziona alla grande sul desktop. Si può facilmente vicino la connessione a SQLCE e manipolare il file SDF come qualsiasi altro file (quello che si sta cercando di fare con il file Sql Server MDF, senza successo).

Aggiornamento: questo appare come quello che vi serve:

USE master 
GO 
ALTER DATABASE YourDatabaseName 
SET OFFLINE WITH ROLLBACK IMMEDIATE 
GO 

( questo risposta )

Altri suggerimenti

È necessario arrestare il server SQL o prendere disconnettere il database prima di copiare i file.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top