【问题标题】:How to bind MySQL table to datagrid in WPF app如何在 WPF 应用程序中将 MySQL 表绑定到数据网格
【发布时间】:2013-07-08 12:52:27
【问题描述】:

我经常遇到这个问题,但似乎找不到令人满意的答案。我在 c# 中有一个 WPF 应用程序,它连接到远程 MySQL 数据库。我的目标是从数据库中选择一个表并将其呈现在数据网格中。但在此之后,我希望能够打印选定的行(使用给定的报告定义文件)。所以我对填充我的数据网格(我知道所需的 mysql 语句)而不在本地存储 mysql 表的方法感兴趣,比如 ObservableCollection。我只想查看所需表中的内容,然后能够分别读取每条记录以填写模板(在 rdlc 文件中定义)。如何才能做到这一点?我在 MVVM 架构中。非常感谢!

【问题讨论】:

    标签: c# mysql wpf mvvm wpfdatagrid


    【解决方案1】:

    我稍微改变了 DeMama 的答案以适应 MvvmLight 模式:

    在您的 ViewModel 中:

    1.声明一个属性:

    private DataView tableFromMySql;
    public DataView TableFromMySql
    {
        get { return tableFromMySql; }
        set
        {
            if (tableFromMySql == value)
                return;
            tableFromMySql = value;
            RaisePropertyChanged("TableFromMySql");
        }
    }
    

    2.将 MySQL 表赋值给该属性:

    DataTable dt = new DataTable();
    
    using (MySqlConnection Conn = new MySqlConnection(connectionStr))
    {
        Conn.Open();
        string cmdStr = string.Format("{0} `{1}`", "SELECT * FROM", "yourtable");
        using (MySqlCommand cmdSel = new MySqlCommand(cmdStr, Conn))
        using (MySqlDataAdapter da = new MySqlDataAdapter(cmdSel))
            da.Fill(dt);
    }
    TableFromMySql = dt.DefaultView;
    

    在你看来:

    TableFromMySql 绑定到 DataGrid 的 ItemsSource,然后您的表格将在 DataGrid 中看到。

    【讨论】:

      【解决方案2】:
      DataTable dt = new DataTable();
      using (MySqlConnection conn = new MySqlConnection("Your connection string"))
      {
          conn.Open();
          string query = "SELECT * FROM table";
          using (MySqlDataAdapter da = new MySqlDataAdapter(query, conn))
              da.Fill(dt);
      }
      yourDataGrid.ItemsSource = dt.DefaultView;
      

      这是我知道用数据库值填充DataGrid 的代码。

      至于打印,它有点高级。我认为您应该考虑使用 Google 会话。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-28
        • 2011-01-31
        • 2017-05-14
        • 2015-08-07
        • 1970-01-01
        • 1970-01-01
        • 2015-03-11
        • 2011-04-07
        相关资源
        最近更新 更多