visual una studio mvc datos conexion conectar con comprobar como c# sql database ado.net sqlconnection

una - conexion a base de datos c# sql server



C#conectarse a la base de datos y enumerar las bases de datos (6)

Esto debería obtener sus nombres de base de datos:

var connectionString = string.Format("Data Source=localhost;User ID={0};Password={1};", userName, password); DataTable databases = null; using (var sqlConnection = new SqlConnection(connectionString)) { sqlConnection.Open(); databases = sqlConnection.GetSchema("Databases"); sqlConnection.Close(); } if (databases != null) { foreach (DataRow row in databases.Rows) { foreach (var item in row.ItemArray) { Console.Write("{0} ", item); } Console.WriteLine(); } }

Siéntase libre de excluir toda la impresión al final. Tira todo eso en una aplicación de consola para verlo en acción. Los nombres de las tablas están en el índice 0 de row.ItemArray .

Posible duplicado:
Consulta de SQL Server para encontrar todos los nombres de bases de datos actuales

Estoy tratando de averiguar cómo enumerar las bases de datos después de conectarme a los servidores sin especificar primero una base de datos.

sqlConnection1 = new SqlConnection("Server=" + sqlServer + ";Database=" + database + ";User ID=" + userName + ";Password=" + password + ";Trusted_Connection=False;");

Básicamente, lo que quiero es que el usuario final se conecte al servidor de SQL, luego se rellene una lista desplegable con la lista de DB que pueden conectar y consultar.

Ideas?


La lista más actualizada de bases de datos estará en la propia base de datos. ¿Por qué no conectarse a tempdb como una base de datos predeterminada (ya que tiene que conectarse a algo) para comenzar y luego consultar desde master.sys.databases.

select [name] from master.sys.databases

Luego puede actualizar su cadena de conexión con la base de datos que sea necesaria o simplemente cambiar la base de datos utilizando el método ChangeDatabase() .

por ejemplo, connection.ChangeDatabase(selectedDB);

También puedes conectarte con el maestro, pero me gusta mantener las conexiones predeterminadas en tempdb ya que ocasionalmente las personas se olvidan de cambiar las bases de datos antes de crear objetos. Preferiría que la basura fuera a tempdb en lugar de master, ya que tempdb se vuelve a crear cuando se reinicia SQL.


Puede escribir un proceso almacenado que le puede devolver una lista de bases de datos en ese servidor.

SELECT name FROM master.sys.databases

o

EXEC sp_databases



Puedes probar con

select * from master.sys.databases


Puedes usar SqlConnection.GetSchema :

using(var con = new SqlConnection("Data Source=Yourserver; Integrated Security=True;")) { con.Open(); DataTable databases = con.GetSchema("Databases"); foreach (DataRow database in databases.Rows) { String databaseName = database.Field<String>("database_name"); short dbID = database.Field<short>("dbid"); DateTime creationDate = database.Field<DateTime>("create_date"); } }

Colecciones de esquemas de SQL Server (ADO.NET)

Para determinar la lista de colecciones de esquemas compatibles, llame al método GetSchema sin argumentos, o con el nombre de la colección de esquemas "MetaDataCollections". Esto devolverá un DataTable con una lista de las colecciones de esquemas compatibles, el número de restricciones que admiten cada uno y el número de partes identificadoras que utilizan.