116 messaggi dal 31 maggio 2008
Ciao
in C# come si verifica l'esistenza di un DataBase prima di ricrearlo?

Grazie!!
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
penso che sia sufficiente stabilire una connessione con il server (senza indicare alcun Database/Initial Catalog nella connection string) e poi inviare una query SQL che ti dica se il db esiste o meno.

La query dipende dal DBMS che stai usando. Ad esempio:

ciao,

Enjoy learning and just keep making
678 messaggi dal 12 maggio 2001
www.idioteca.it
@BrightSoul
ma in questo modo devi collegarti con un utente di tipo admin (sa?), se non puoi gestire connessioni trusted.
Non basta semplicemente effettuare la tua connessione al db e verificare un eventuale errore restituito dall'apertura di quest'ultima?
E' vero che nel mio caso devi comunque avere le credenziali per accedere al tuo database o per crearlo in caso non ci sia...
ciao
Modificato da giangi_77 il 07 novembre 2011 15.01 -
11.886 messaggi dal 09 febbraio 2002
Contributi
giangi_77 ha scritto:
ma in questo modo devi collegarti con un utente di tipo admin (sa?), se non puoi gestire connessioni trusted.

ah, le sys.* non sono viste di sistema interrogabili da chiunque, in modo che sappia a quali risorse ha accesso (e come sono fatte)?

giangi_77 ha scritto:

Non basta semplicemente effettuare la tua connessione al db e verificare un eventuale errore restituito dall'apertura di quest'ultima?

Così facendo non otterresti una generica SqlException che si potrebbe confondere con altri tipi di errore, tipo mancata connettività o timeout? Magari si potrebbe discriminare in base al numero dell'errore, oppure mettere direttamente un try...catch attorno al comando USE nomedb, così si avrebbe maggior sicurezza che è stato quello specifico comando a fallire.
Comunque sì, anche questa soluzione è valida. Tra le due continuo a preferire la prima perché consiste in una semplice query, ovviamente privilegi permettendo.

ciao,

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.