Nunca quiero dividir la cadena de conexión usando la manipulación de cadenas y obtener el servidor, la base de datos, el uid y la contraseña.
Leí el siguiente enlace y leí la respuesta aceptada, descubrí que es la mejor manera de obtener el ID de usuario y la contraseña de la cadena de conexión, pero ¿qué pasa con el Nombre de la base de datos?
¿Forma correcta de obtener el nombre de usuario y la contraseña de la cadena de conexión?
Cómo obtener el nombre de la base de datos de la cadena de conexión usando SqlConnectionStringBuilder. (¿DataSource es el nombre del servidor?)
string database = builder["Initial Catalog"] as string;
- "Base de datos" era una palabra clave no válida.Una alternativa mucho más sencilla es obtener la información del propio objeto de conexión. Por ejemplo:
IDbConnection connection = new SqlConnection(connectionString); var dbName = connection.Database;
De manera similar, también puede obtener el nombre del servidor del objeto de conexión.
DbConnection connection = new SqlConnection(connectionString); var server = connection.DataSource;
fuente
SqlConnection
. ¿Hay alguna salida similar para hacer este RDBMS cruzado?IDbConnection
?string connectString = "Data Source=(local);" + "Integrated Security=true"; SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString); Console.WriteLine("builder.InitialCatalog = " + builder.InitialCatalog);
fuente
esto te da el 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.
fuente
El nombre de la base de datos es un valor de la propiedad SqlConnectionStringBuilder.InitialCatalog .
fuente
Puede usar InitialCatalog Property o también
builder["Database"]
funciona. Lo probé con una carcasa diferente y todavía funciona.fuente