sql >> Base de Datos >  >> RDS >> Sqlserver

Asignación de tipo de datos de bit a tipo de enumeración de la base de datos al conjunto de datos en SQL Server 2008

Puedes manejarlo de 1 de 2 maneras.

1) En lugar de devolver los datos como un bit, haga la conversión en su consulta para que devuelva Compra/Venta como una cadena basada en el valor. Esto solo funcionará bien si su cuadrícula es de solo lectura. Si necesita poder agregar/editar datos, sería complicado volver a convertir su Compra/Venta a un bit y hacer cumplir que el usuario solo puede ingresar comprar/vender. Probablemente querrá usar el método 2 si necesita agregar/editar datos.

p.ej. digamos que el nombre de su columna se llama BuySell y es de tipo bit

SELECT CASE WHEN BuySell = CAST(0 AS BIT) THEN 'Buy' ELSE 'Sell' AS BuySell FROM TableName

2) Deberá desactivar "Autogenerar columnas" en DataGridView y configurar sus columnas manualmente. Si su cuadrícula es de solo lectura, agregaría una columna de texto para su columna de compra/venta que se asigna a su valor de bits. Luego, en el evento Cell_Formatting para la cuadrícula, actualice el valor según el bit. Algo como lo siguiente:

private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (dgv.Columns[e.ColumnIndex].Name == "buysell")
    {
        if (e.Value != null)
        {
            if (e.Value.ToString() == "1")
            {
                e.Value = "Sell";
            }
            else
            {
                e.Value = "Buy";
            }
        }
        else
        {
            e.Value = "Buy";
        }
    }
}

Si su cuadrícula necesita ser editable, configure una tabla de datos que represente sus valores de compra/venta con un miembro de visualización y un miembro de valor. Enlace eso como fuente de datos para una columna de cuadro combinado. Ahora, cargar los datos mostrará correctamente Comprar/Vender en el cuadro combinado y, para las nuevas filas, cuando seleccione un valor del menú desplegable, completará su fuente de datos subyacente con el valor de bit correcto.