Sin categoría

Agregar columnas concatenadas a un DataSet

Para concatenar columnas en SQLite se una una doble barra ( || ) . Mi problema es que Visual Studio 2010 o el proveedor ADO, System.Data.SQLite no están parseando correctamente sentencias que usan este operador.

sqlite-concatenar-columnas

Para hacer una concatenación y mostrarla como una columna adicional en un DataSet, se hace click derecho sobre el query Fill, GetData () , o cualquier otro que se haya definido, y luego en Configurar… para ver el asistente de configuración del TableAdapter. Allí podemos cambiar la sentencia manualmente o usar el Query Builder.

query-builder

Al terminar de modificar el query, el asistente muestra una advertencia respecto del uso del operador de concatenación.

config-wizard

Aparentemente, sólo hay que ignorarla y finalizar el asistente.

Finalmente, hacemos click derecho sobre el DataTable y seleccionamos Agregar > Columna. Le damos un nombre a la columna y en las propiedades de la misma, elegimos como Source la columna que surge de la concatenación.

agregar-columna

Y sólo por precaución, hacer un rebuild del projecto…

Anuncios
tesis

Enlazar ComboBoxes

A comboboxes ligados a un origen de datos, usando un BindingSource, se puede enlazarlos para filtrar el contenido de uno según la selección en el otro.

Para esto, en el evento SelectedIndexChanged el combo principal se debe establecer el filtro… en este ejemplo tenemos un combo que lista las empresas y otro que lista las sucursales de cada empresa. Lo que se quiere lograr es que se sólo muestren las sucursales de la empresa seleccionada.

Private Sub EmpresasComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EmpresasComboBox.SelectedIndexChanged
    If EmpresasComboBox.SelectedValue > 0 Then
        Me.SucursalesBindingSource.Filter = String.Format("SucursalEmpresaId = '{0}'", CType(Me.EmpresasComboBox.SelectedValue, Integer))
        If SucursalesBindingSource.Count > 0 Then
            SucursalesComboBox.Enabled = True
        Else
            SucursalesComboBox.Enabled = False
        End If
    Else
        SucursalesComboBox.Enabled = False
    End If
End Sub

En el código, SucursalEmpresaId es el campo clave de una tabla de sucursales.

(Puede que haya alguna que otra burrada en el código)

tesis

Cuestión de fondo…

Estoy haciendo mi tesis para la carrera de Analista en Sistemas (ICES). Es un pequeño sistema para gestión de concesionarias más taller.

Por diversas cuestiones elegí programarlo en VB.Net con SQLite. Las peripecias con esta combinación, no son pocas. Arranco este blog para documentar las partes más dolorosas…