Buscando algunos ejemplos de C# que puedan recuperar los nombres de las tablas de una base de datos específica en un servidor. Ya tengo una cadena de conexión válida, solo estoy buscando la forma correcta de agregar los nombres de cada tabla en Lista para su posterior recuperación y manipulación.Recuperar la lista de tablas de la base de datos específica en el servidor C#
Respuesta
System.Data.SqlClient
tiene lo que necesita sin una consulta formal sobre sys.Tables (aunque eso es lo que está usando en el fondo). Utilice el método GetSchema()
en el objeto SqlConnection
y designe que desea las "Tablas" y le enviará un objeto DataTable
con una fila para cada tabla. Devuelve el nombre de la base de datos, el nombre del esquema de la tabla, el nombre de la tabla y el tipo de tabla en cada fila (en el orden de esa columna). El código se vería así:
public static List<string> GetTables(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
DataTable schema = connection.GetSchema("Tables");
List<string> TableNames = new List<string>();
foreach (DataRow row in schema.Rows)
{
TableNames.Add(row[2].ToString());
}
return TableNames;
}
}
creo que este SQL debe devolver una tabla que contiene los nombres de tablas en su base de datos:
SELECT * FROM information_schema.tables
Para SQL Server 2005 y superior:
using (SqlConnection connection = new SqlConnection(@"Data Source=(local);Integrated Security=True;Initial Catalog=DB_Name;")) {
connection.Open();
using (SqlCommand command = connection.CreateCommand()) {
command.CommandText =
@"SELECT s.name, o.name
FROM sys.objects o WITH(NOLOCK)
JOIN sys.schemas s WITH(NOLOCK)
ON o.schema_id = s.schema_id
WHERE o.is_ms_shipped = 0 AND RTRIM(o.type) = 'U'
ORDER BY s.name ASC, o.name ASC";
using (SqlDataReader reader = command.ExecuteReader()) {
while (reader.Read()) {
string schemaName = reader.GetString(0);
string tableName = reader.GetString(1);
// your code goes here...
}
}
}
}
Dado que usted tiene la SqlConnection ya, por qué no usar .GetSchema ("Tablas ")? –
a buscar todas las tablas definidas por el usuario de la base de datos (SQLServer), tenemos que consultar los catálogos del sistema.
SELECT Name from Sysobjects where xtype = 'u'
esta consulta devolverá tablas definidas todos los usuarios de la Base de Datos
esta mi solución:
public void opencon()
{
if (conn == null)
{
conn = new SqlConnection(@"Your connection");
}
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
}
public void Closecon()
{
if ((conn != null) && (conn.State == ConnectionState.Open))
{
conn.Close();
}
}
public void GetTables(ComboBox cb)
{
chuoiketnoi();
DataTable schema = conn.GetSchema("Tables");
foreach (DataRow row in schema.Rows)
{
cb.Items.Add(row[2].ToString());
}
dongketnoi();
}
- 1. Recuperar una lista de todas las tablas en la base de datos
- 2. Lista de todas las tablas en la base de datos
- 3. Almacenar y recuperar tablas de datos de la sesión
- 4. Recuperar lista de tablas en el archivo MS Access
- 5. Recuperar esquema de base de datos
- 6. ¿Cómo obtener la lista de tablas en la base de datos, usando MS SQL 2008?
- 7. Renombrar todas las tablas en la base de datos
- 8. SQL Seleccionar la lista de tablas en una base de datos
- 9. ¿Cómo colocar todas las tablas en la base de datos sin soltar la base de datos?
- 10. Enumeraciones persistentes en las tablas de la base de datos
- 11. Alterar las tablas de la base de datos en Django
- 12. Ordenar columnas en las tablas de la base de datos
- 13. Roles de la base de datos del servidor SQL
- 14. Cómo recuperar un conjunto de resultados de todas las tablas en la base de datos con su espacio de disco
- 15. Conexión a la base de datos MySQL en el servidor
- 16. Crear tablas en la base de datos sqlite en android
- 17. PostgreSQL: Crear esquema en la base de datos específica
- 18. Cómo recuperar Objetos de la lista de arrays en C#
- 19. Borrando la base de datos de C#
- 20. Lista de tablas no vacías en la base de datos MySQL
- 21. Ingreso 3 tablas en la base de datos SQLite
- 22. ¿Cómo obtener la lista de tablas secundarias para una tabla de base de datos?
- 23. ¿Cómo contar tablas vacías en la base de datos?
- 24. Actualización de la base de datos sqlite cuando la base de datos del servidor se actualiza
- 25. ¿Puedo obtener el nombre de todas las tablas de la base de datos de SQL Server en la aplicación C#?
- 26. Ordenar la recopilación de hibernación al recuperar de la base de datos
- 27. Dónde poner la lógica de dominio que necesita recuperar datos de la base de datos
- 28. El propietario de la base de datos postgresql no puede acceder a la base de datos: "No se encontraron relaciones".
- 29. Herencia en el diseño de la base de datos
- 30. Django Lista desplegable dinámica de la base de datos
La conexión está envuelta en un bloque de uso, por lo que la conexión se cierra una vez que el código sale del bloque. – Tim