来自My SQL枚举的DataGrid组合框列

时间:2012-01-31 20:34:10

标签: c# .net mysql wpf datagrid

在WPF数据网格中发现了一堆关于组合框的其他线程,但没有一个帮助过。

我与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();
            }
        }

现在我在表格中有一个“省”字段,并在MySQL工作台中创建了一个枚举('ON','MB','SK'等)。当我在VS中创建数据连接时,我可以看到VS看到它是枚举类型。我想如果将AutoGenerateColumns设置为true,那么网格是否足够聪明,可以在这些省表格单元格中放置带有枚举值的组合框?那没有发生。它只是一个普通的旧文本字段,maxchars为2 ...

有什么想法吗?我是否必须在项目中创建一个新的DataSet来从我的数据库模式创建C#类?

1 个答案:

答案 0 :(得分:0)

正确答案在H.B.的引用帖子中......“不要使用它们”。看来我也是数据库的新手,我不知道处理枚举的正确和标准方法是使用参考表。只需点击几下即可抓住链接:Why MySQL enums are evil