Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Mapowanie typu danych bitowych na typ wyliczenia z bazy danych do zestawu danych w SQL Server 2008

Możesz sobie z tym poradzić na 1 z 2 sposobów.

1) Zamiast zwracać dane jako bit, wykonaj rzutowanie w zapytaniu, aby zwróciło Kup/Sprzedaj jako ciąg na podstawie wartości. To naprawdę działa dobrze tylko wtedy, gdy twoja siatka jest tylko do odczytu. Jeśli chcesz mieć możliwość dodawania/edycji danych, przekonwertowanie kupna/sprzedaży z powrotem na trochę i wymuszenie, aby użytkownik mógł tylko wprowadzić kupno/sprzedaż, byłoby kłopotliwe. Prawdopodobnie będziesz chciał użyć metody 2, jeśli chcesz dodać/edytować dane.

np. powiedzmy, że nazwa Twojej kolumny nazywa się BuySell i jest typu bit

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

2) Będziesz musiał wyłączyć "Autogeneratecolumns" w DataGridView i ręcznie skonfigurować kolumny. Jeśli twoja siatka jest tylko do odczytu, dodałbym kolumnę tekstową do kolumny kupna/sprzedaży, która mapuje na twoją wartość bitową. Następnie w zdarzeniu Cell_Formatting dla siatki zaktualizuj wartość na podstawie bitu. Coś takiego jak poniżej:

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";
        }
    }
}

Jeśli Twoja siatka musi być edytowalna, skonfiguruj DataTable, która reprezentuje Twoje wartości Kup/Sprzedaj za pomocą elementu wyświetlania i elementu wartości. Powiąż to jako źródło danych dla kolumny combobox. Teraz wczytanie danych spowoduje prawidłowe wyświetlenie opcji Kup/Sprzedaj w polu kombi, a w przypadku nowych wierszy po wybraniu wartości z menu rozwijanego spowoduje wypełnienie bazowego źródła danych prawidłową wartością bitową.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SSIS. Jak skopiować dane z jednej tabeli do różnych tabel?

  2. Jak znaleźć sortowanie w SQL Server (T-SQL)

  3. SQL Server — czy [SELECT] blokuje [UPDATE]?

  4. Skrypt do usuwania wszystkich obiektów niesystemowych w SQL Server 2008

  5. Zapytanie o sprawdzenie indeksu w tabeli