2012-01-31 39 views
0

發現了一堆關於WPF數據網格中的組合框的其他線程,但沒有任何幫助。從My SQL枚舉的DataGrid combobox列

我有一個連接到MySQL數據庫,並可以用表中的行填充數據網格。 XAML:

<DataGrid Name="dataGridxxx" ItemsSource="{Binding}" AutoGenerateColumns="True" Height="279" AutoGeneratingColumn="dataGridxxx_AutoGeneratingColumn"> 

C#:

private void Window_Loaded(object sender, RoutedEventArgs e) 
     { 
      string MyConString = 
      "SERVER=xxx;" + 
      "DATABASE=xxx;" + 
      "UID=xxx;" + 
      "PASSWORD=xxx;"; 

      string sql = "SELECT * FROM xxx ORDER BY lastName"; 

      using (MySqlConnection connection = new MySqlConnection(MyConString)) 
      { 
       connection.Open(); 
       using (MySqlCommand cmdSel = new MySqlCommand(sql, connection)) 
       { 
        DataTable dt = new DataTable(); 
        MySqlDataAdapter da = new MySqlDataAdapter(cmdSel); 
        da.Fill(dt); 
        dataGridPatients.DataContext = dt; 
       } 

       connection.Close(); 
      } 
     } 

現在我在表中 「省」 字段,它是由一個枚舉( 'ON', 'MB', 'SK' 等)在MySQL工作臺中。當我在VS中創建數據連接時,我可以看到VS認爲它是枚舉類型。我想如果AutoGenerateColumns設置爲true,網格足夠聰明,可以在這些Province表格單元格中放置一個帶有DB枚舉值的組合框?這沒有發生。這只是一個普通的舊文本字段,最大值爲2 ...

任何想法?我是否需要在我的項目中創建一個新的DataSet來從我的數據庫模式創建C#類?

+1

請參閱此相關問題:[ASP.net 4.0實體數據模型Mysql未處理Mysql枚舉權](http://stackoverflow.com/q/7140837/620360) – LPL 2012-02-01 11:08:11

+0

謝謝!不知道如何標記你的'評論'作爲一個正確的答案...所以正式在下面。 – akevan 2012-02-02 00:40:08

回答

0

正確的答案是在H.B.的引用文章中......「不要使用它們」。鑑於我對數據庫還不熟悉,我不知道處理枚舉的正確和標準方式是使用參考表。從幾次點擊即可阻止鏈接:Why MySQL enums are evil