2012-01-31 16 views
0

コンボボックスに関する他のスレッドがWPF DataGridで見つかりましたが、そのどれも助けられませんでした。My SQL enumのDataGridコンボボックスの列

私は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(); 
      } 
     } 

は今、私はテーブル内の "省" フィールドがあり、そしてそれがenum( 'ON'、 'MB'、 'SK' を作った、など。)MySQLワークベンチで。 VSでデータ接続を作成すると、VSが列挙型であることがわかります。私は、AutoGenerateColumnsがtrueに設定されている場合、グリッドは、これらの州の表のセルにDB列挙型の値でコンボボックスを配置するのに十分なスマートなものだと思いましたか?それは起こっていない。それは2のmaxcharsと平凡な古いテキストフィールドです...

任意のアイデア?データベーススキーマからC#クラスを作成するために、プロジェクトで新しいDataSetを作成する必要がありますか?

+1

この関連する質問を参照してください。[ASP.net 4.0エンティティデータモデルMysqlが正しくないMysql列挙型を処理しない](http://stackoverflow.com/q/7140837/620360) – LPL

+0

ありがとう!正しい答えとしてあなたの「コメント」をどのように記すかわからないので、以下のように公式化しました。 – akevan

答えて

0

正解はH.B.の参照された投稿にあります...「使用しないでください」。私もデータベースに慣れていないので、enumを適切かつ標準的に扱う方法がわからないのは、参照テーブルを使用することです。 Why MySQL enums are evil

関連する問題