【问题标题】:DataGrid combobox column from My SQL enumMy SQL 枚举中的 DataGrid 组合框列
【发布时间】:2012-01-31 20:34:10
【问题描述】:

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

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

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

【问题讨论】:

标签: c# .net mysql wpf datagrid


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 2014-10-04
    • 2018-09-17
    • 2012-03-03
    • 1970-01-01
    相关资源
    最近更新 更多