Foros del Web » Programación para mayores de 30 ;) » .NET »

Pasar el nombre de la tabla cómo parámetro

Estas en el tema de Pasar el nombre de la tabla cómo parámetro en el foro de .NET en Foros del Web. Hola. Hice un formulario para poder editar el contenido de una tabla. Me interesa lograr que este formulario sirva para editar cualquier tabla. Mi idea ...
  #1 (permalink)  
Antiguo 06/02/2012, 07:18
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
Pasar el nombre de la tabla cómo parámetro

Hola.

Hice un formulario para poder editar el contenido de una tabla.

Me interesa lograr que este formulario sirva para editar cualquier tabla. Mi idea es pasar el nombre de la tabla en una variable "NombreTabla" y de esta manera lo soluciono.

Mi problema es que la orden SQL está en la sección de declaración de variables y por lo tanto el valor que le paso a la variable NombreTabla en la cadena SQL concatena Nothing.

Para llamar al formulario hago así:

Código:
        frmTablas.NombreTabla = "clasificacion"
        frmTablas.Text = "Mantenimiento de Clasificaciones"
        frmTablas.Show()
El código del formulario es:
Código:
    Public NombreTabla As String

    Dim Tabla As New DataTable
    Dim Adaptador As New MySqlDataAdapter("SELECT * FROM " & NombreTabla & " ORDER BY nombre", Conexion)
    Dim ComandosBasicos As New MySqlCommandBuilder(Adaptador)

    Private Sub frmTablas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Adaptador.FillSchema(Tabla, SchemaType.Mapped)
        Adaptador.Fill(Tabla)
        dgvTablas.DataSource = Tabla

        dgvTablas.Columns.Item(0).Visible = False
    End Sub

    Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalir.Click
        Me.Close()
    End Sub

    Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
        If dgvTablas.Rows.Count > 0 Then
            Adaptador.Update(CType(dgvTablas.DataSource, DataTable))
        Else
            MessageBox.Show("No hay informacion para guardar")
        End If
    End Sub
End Class
Desde ya muchas gracias por las respuestas.
Saludos
  #2 (permalink)  
Antiguo 06/02/2012, 14:19
 
Fecha de Ingreso: agosto-2011
Mensajes: 59
Antigüedad: 12 años, 9 meses
Puntos: 8
Respuesta: Pasar el nombre de la tabla cómo parámetro

No es que sepa mucho de clases en VB pero me he echo un ejemplillo tonto de tu problema y me parece que tu problema es que cuando tu le pones el nombre al la tabla. esta ya está echa.
o lo que es lo mismo cuando tu haces

frmTablas.NombreTabla = "clasificacion"

esto ya se ha ejecutado

Dim Adaptador As New MySqlDataAdapter("SELECT * FROM " & NombreTabla & " ORDER BY nombre", Conexion)
Dim ComandosBasicos As New MySqlCommandBuilder(Adaptador)


Haz un constructor sobrecargado para tu clase y te irá mejor o bien inicializa estas variables vacias

Dim Adaptador As New MySqlDataAdapter("SELECT * FROM " & NombreTabla & " ORDER BY nombre", Conexion)
Dim ComandosBasicos As New MySqlCommandBuilder(Adaptador)

y prepara una función a la que llames y hagan los news con los valores que deseas poner


Si quieres ver lo que te pasa ejecuta tu código en debug, entra en el constructor (new) y lo verás claro

Etiquetas: nombre, sql, tabla
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 18:53.