[c#] Comment obtenir le nom de la base de données à partir de la chaîne de connexion à l'aide de SqlConnectionStringBuilder


Answers

Vous pouvez utiliser la classe ConnectionStringBuilder spécifique au fournisseur (dans l'espace de nom approprié) ou System.Data.Common.DbConnectionStringBuilder pour extraire l'objet chaîne de connexion si nécessaire. Vous devez connaître les mots clés spécifiques au fournisseur utilisés pour désigner les informations que vous recherchez, mais pour un exemple SQL Server, vous pouvez effectuer l'une des deux opérations suivantes:

System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder(connectionString);

string server = builder.DataSource;
string database = builder.InitialCatalog;

ou

System.Data.Common.DbConnectionStringBuilder builder = new System.Data.Common.DbConnectionStringBuilder();

builder.ConnectionString = connectionString;

string server = builder["Data Source"] as string;
string database = builder["Initial Catalog"] as string;
Question

Je ne veux jamais diviser la chaîne de connexion en utilisant la manipulation de chaîne et obtenir le serveur, la base de données, l'uid et le mot de passe.

J'ai lu le lien suivant et lu la réponse acceptée, j'ai trouvé que c'est le meilleur moyen de sortir l'ID utilisateur et le mot de passe de la chaîne de connexion, mais qu'en est-il du nom de la base de données?

Bon moyen d'obtenir le nom d'utilisateur et mot de passe de la chaîne de connexion?

Comment obtenir le nom de la base de données à partir de la chaîne de connexion à l'aide de SqlConnectionStringBuilder. (est-ce que DataSource est le nom du serveur?)







string connectString = "Data Source=(local);" + "Integrated Security=true";

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString);

Console.WriteLine("builder.InitialCatalog = " + builder.InitialCatalog);



Related