Nigdy nie chcę dzielić parametrów połączenia za pomocą manipulacji ciągami i uzyskać serwer, bazę danych, identyfikator UID i hasło.
Przeczytałem poniższy link i zaakceptowaną odpowiedź, stwierdziłem, że jest to najlepszy sposób na uzyskanie identyfikatora użytkownika i hasła z ciągu połączenia, ale co z nazwą bazy danych?
Właściwy sposób na uzyskanie nazwy użytkownika i hasła z parametrów połączenia?
Jak uzyskać nazwę bazy danych z parametrów połączenia przy użyciu SqlConnectionStringBuilder. (czy DataSource to nazwa serwera?)
string database = builder["Initial Catalog"] as string;
- "Baza danych" to nieprawidłowe słowo kluczowe.O wiele prostszą alternatywą jest pobranie informacji z samego obiektu połączenia. Na przykład:
IDbConnection connection = new SqlConnection(connectionString); var dbName = connection.Database;
Podobnie możesz również uzyskać nazwę serwera z obiektu połączenia.
DbConnection connection = new SqlConnection(connectionString); var server = connection.DataSource;
źródło
SqlConnection
. Czy jest jakiś podobny sposób, aby ten krzyżowy RDBMS?IDbConnection
?string connectString = "Data Source=(local);" + "Integrated Security=true"; SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString); Console.WriteLine("builder.InitialCatalog = " + builder.InitialCatalog);
źródło
to daje Xact;
System.Data.SqlClient.SqlConnectionStringBuilder connBuilder = new System.Data.SqlClient.SqlConnectionStringBuilder(); connBuilder.ConnectionString = connectionString; string server = connBuilder.DataSource; //-> this gives you the Server name. string database = connBuilder.InitialCatalog; //-> this gives you the Db name.
źródło
Nazwa bazy danych jest wartością właściwości SqlConnectionStringBuilder.InitialCatalog .
źródło
Możesz użyć właściwości InitialCatalog lub również
builder["Database"]
działa. Przetestowałem to z inną obudową i nadal działa.źródło