Foros del Web » Programando para Internet » ASPX (.net) »

Listar tablas de una BBDD sp_tables

Estas en el tema de Listar tablas de una BBDD sp_tables en el foro de ASPX (.net) en Foros del Web. Hola, Me gustaria coger todas las tablas de una BBDD, y luego listarlas. Estoy ejecutando un sp_tables, pero no se como recoger la salida de ...
  #1 (permalink)  
Antiguo 31/03/2008, 03:39
 
Fecha de Ingreso: marzo-2006
Mensajes: 18
Antigüedad: 18 años, 1 mes
Puntos: 1
Listar tablas de una BBDD sp_tables

Hola,

Me gustaria coger todas las tablas de una BBDD, y luego listarlas. Estoy ejecutando un sp_tables, pero no se como recoger la salida de la consulta :-?

Código:
        SqlConnection cnn = new SqlConnection(
            "Server=" + server + "; " +
            "database=master; integrated security=yes");

        string s = "EXEC sp_tables";
        SqlCommand cmd = new SqlCommand(s, cnn);
        try
        {
            // Abrimos la conexión y ejecutamos el comando
            cn.Open();
            ...
        }

Última edición por miguebols; 31/03/2008 a las 03:40 Razón: me olvidé de suscribirme a la notificacion
  #2 (permalink)  
Antiguo 31/03/2008, 17:22
Avatar de Fann_Lavigne  
Fecha de Ingreso: diciembre-2004
Mensajes: 622
Antigüedad: 19 años, 4 meses
Puntos: 12
Re: Listar tablas de una BBDD sp_tables

Tu konsulta te debe regresar filas, y poder llenar kon ellas un DataSet, ya kon eso es facil rekorrerlo median un For Each dr_Row in DS.Tables("Algo").Rows donde dr_Row es una variable de tipo dataRow y DS es la variable de tu dataSet.... si tienes dudas, no hay problema tratare de ayudarte y ser mas especifiko.
__________________
"Entre Mas Brillante Es Una Mente, Tiene Que Luchar Contra Demonios Internos Mas Poderosos"
[email protected]
  #3 (permalink)  
Antiguo 06/04/2008, 10:47
 
Fecha de Ingreso: marzo-2006
Mensajes: 18
Antigüedad: 18 años, 1 mes
Puntos: 1
Re: Listar tablas de una BBDD sp_tables

No lo consigo. Tengo 2 problemas:

1- Tal y como hago la conexion al servidor de BBDD (que se hace bien), como le especifico que el comando que voy a ejectuar es para una BBDD en particular???.
Porque he intentado conectarme directamente a la BBDD que quiero con la ruta que me pone el SQL Server (SQLEXPRESS\Databases\Languages) pero me da error.

2. El hacer DataSet.ToString() no me vale para imprimir las tablas,no? (aunque el comando que yo haya mandado sea un sp_tables)


Código:
        String server = DropDownList1.Items[DropDownList1.SelectedIndex].ToString();

        // Sets the conexion
        SqlConnection myConnection = new SqlConnection(
            "Server=" + server + "; " +
            "database=master; integrated security=yes");
        try
        {
            // Starts the conexion
            myConnection.Open();
            Label2.Text = "myConnection to DataBase Succesfully";
            // Create a command to execute
            SqlCommand myCommand = new SqlCommand("EXEC sp_tables", myConnection);
            myCommand.CommandType = CommandType.Text;
            // Create a SqlDataAdapter.
            SqlDataAdapter myAdapter = new SqlDataAdapter();
            myAdapter.SelectCommand = myCommand;
            // Create a DataSet.
            DataSet myDS = new DataSet();
            // Link myCommand to myAdapter.
            myAdapter.SelectCommand = myCommand;
            // Execute and read data
            myAdapter.Fill(myDS);
            Label3.Text = myDS.ToString();
        }
  #4 (permalink)  
Antiguo 06/04/2008, 14:32
Avatar de Fann_Lavigne  
Fecha de Ingreso: diciembre-2004
Mensajes: 622
Antigüedad: 19 años, 4 meses
Puntos: 12
Re: Listar tablas de una BBDD sp_tables

No, al tener un DaTaSet, es una tabla en memoria, y no la puedes pasar a string asi, debes recorrer cada fila.

Dim dr_DataRow As DataRow

For Each dr_DataRow in myDS.Tables(0)
'dr_DataRow("Nombre de la kolumna ke te regresa el sp") 'Aki ya tienes el texto de la tabla rekorriendolo una por una. Esto lo puede agregar a un ListBox

List1.Items.Add(dr_DataRow("Algo")) 'Suponiendo ke ALGo se el nombre de la kolumna donde se enlistan las tablas
Next
__________________
"Entre Mas Brillante Es Una Mente, Tiene Que Luchar Contra Demonios Internos Mas Poderosos"
[email protected]
  #5 (permalink)  
Antiguo 13/04/2008, 10:48
 
Fecha de Ingreso: marzo-2006
Mensajes: 18
Antigüedad: 18 años, 1 mes
Puntos: 1
Re: Listar tablas de una BBDD sp_tables

Pero como se pueden leer las tablas sin conocer su nombre???
Yo lo que quiero es listar las tablas que hay en la BBDD, quiero su nombre solamente, para ponerlas en una listita aparte.

Y una vez hecha la conexion, y despues ->

Código:
            
// Create my DataRow
numberDB = myDS.Tables.Count;
for (int i = 0; i < numberDB; i++)
{
    foreach (DataRow pRow in myDS.Tables(i))
    {
           ListBox1.Items.Add("pollo");
    }
}
el foreach con myDS.Tables(i) esta mal, porque no se puede acceder asi, segun Fann_Lavinge y Visual Web Developer siempre hay que acceder asi:
Código:
    foreach (DataRow pRow in myDS.Tables["nombre de la tabla que quieres"])
Pero yo se supone que no se los nombres de las tablas, es precisamente eso lo que quiero recoger con:

Código:
SqlCommand myCommand = new SqlCommand("EXEC sp_tables", myConnection);
Gracias de nuevo
  #6 (permalink)  
Antiguo 13/04/2008, 11:09
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Listar tablas de una BBDD sp_tables

utliza

select table_name from INFORMATION_SCHEMA.Tables

y rellenas tu dataset con lo que quieras, y despues utilizas el otro query generado para poder tomar todas las columnas de tu bd
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #7 (permalink)  
Antiguo 13/04/2008, 11:11
Avatar de Fann_Lavigne  
Fecha de Ingreso: diciembre-2004
Mensajes: 622
Antigüedad: 19 años, 4 meses
Puntos: 12
Re: Listar tablas de una BBDD sp_tables

Por eso mismo, vas a recorrer el DataSet donde estan almacenados los nombres, lo cuales no sabemos, por ende el dataset se llenara con esa lista de nombres, ke nadie sabe, pero al recorrer el dataset, se sabran por que los podras ver en una lista. Ejemplo.

La palabra pollo en tu ejemplo anterior, no sera el nombre de la tabla, sino el nombre de la columna en tu DataSet.

Código:
dim adp as new sqldataadapter
dim ds as dataset
dim dr as datarow

adp = new sqldataadapter(" select table_name from INFORMATION_SCHEMA.Tables ", cnx)
adp.fill(ds,"MisTablas")
cnx.close

for each dr in ds.tables("mistablas").rows
List1.Items.Add(dr("table_name"))
next
asi es como deberia ser.
__________________
"Entre Mas Brillante Es Una Mente, Tiene Que Luchar Contra Demonios Internos Mas Poderosos"
[email protected]
  #8 (permalink)  
Antiguo 14/04/2008, 02:58
 
Fecha de Ingreso: marzo-2006
Mensajes: 18
Antigüedad: 18 años, 1 mes
Puntos: 1
Re: Listar tablas de una BBDD sp_tables

Gracias!!,

Por fin lee algo..jarllll.
Peeeeero, me ha devuelto todas las tablas que hay en ->
SQLEXPRESS\Databases\System Databases\master\Tables\System Tables

¿¿ Se debe a que mi comando es: new SqlCommand("SELECT table_name FROM INFORMATION_SCHEMA.Tables ", myConnection); ??

Porque yo lo que quiero que me diga son unas tablas de una BBDD que tengo aparte, no la del sistema. Y cuando lo he intentado con..

Código:
SqlCommand myCommand = new SqlCommand("SELECT * FROM dbo.Languages", myConnection);
.. me devuelve -> Invalid object name 'dbo.Languages'.
Y eso que estoy intentando conectarme a mi BBDD Languages, asi:

Código:
        server = @"(local)\SQLEXPRESS";
        SqlConnection myConnection = new SqlConnection(
            "Server=" + server + "; " + "database=Languages" +
            "user id=;password=;database=master; integrated security=yes");

PS. Vuestra ayuda es cojonuda, espero poder hacer lo mismo pronto :D
PS. Mi BBDD Languages cuelga de 'Databases' y no de 'System Databases' en SQL Server Management
  #9 (permalink)  
Antiguo 14/04/2008, 05:56
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Listar tablas de una BBDD sp_tables

cambia tu db en tu cadena de conexion y apunta a tu bd q realmente usas no a master
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:59.